2012-07-08 14 views

cevap

75

Geçerli zaman damgasına bir şey eklemek için strtotime() işlevi gibi bir şey kullanabilirsiniz. $new_time = date("Y-m-d H:i:s", strtotime('+5 hours')).

İşlevde değişkenlere ihtiyacınız varsa, çift tırnak sonra strtotime("+{$hours} hours") gibi kullanmanız gerekir, ancak daha sonra strtotime(sprintf("+%d hours", $hours)) kullanın.

+0

'u işaretleyin. İşe yaramaktadır, ancak '5'i bir değişkenle değiştirirsem düzgün çalışmaz. strtotime ('+ $ hours hours') –

+0

Size yardımcı olması gereken cevabı güncelledim. – fdomig

+0

$ new_time = date ("Y-m-d H: i: s", strtotime ('+ 5 hours')? M ay, i dakika dakika demek istemiyor musunuz? – richard

16

Sen bunu başarmak için strtotime() kullanabilirsiniz:

$new_time = date("Y-m-d H:i:s", strtotime('+3 hours', $now)); // $now + 3 hours 
+1

Bu cevaplar n ile dakikalarca m kullanarak ??? – richard

+0

@RichardDesLonde Muhtemelen herkes OP'nin kod örneğini kopyaladığından. :-) – Zar

3

Ayrıca hesaplamak için unix tarzı zamanı kullanabilirsiniz:

$newtime = time() + ($hours * 60 * 60); // hours; 60 mins; 60secs 
echo 'Now:  '. date('Y-m-d') ."\n"; 
echo 'Next Week: '. date('Y-m-d', $newtime) ."\n"; 
+0

kötü bir fikir, artık yıllar ile ilgili sorunlar, sıçrama saniye, gün ışığından yararlanma saati vs. –

+0

@Dagon no, düzgün hesaplar. – casraf

+0

Artık yıl bu yöntemin kullanımı ile halledilir, gün ışığından yararlanma tarihini tekrar ayarlamak için ayarlanabilir – Ankit

4

Um ... senin dakika düzeltilmelidir ... ' Ben dakikadır. Aylar değil. :) (Ben de bir şey için aynı problem vardı :: eklemek

$now = date("Y-m-d H:i:s"); 
$new_time = date("Y-m-d H:i:s", strtotime('+3 hours', $now)); // $now + 3 hours 
22

bir diğer çözüm (nesne yönelimli) DateTime kullanmaktır

Örnek:..

$now = new DateTime(); //current date/time 
$now->add(new DateInterval("PT{$hours}H")); 
$new_time = $now->format('Y-m-d H:i:s'); 

PHP documentation

+3

Burada ufak tefek, $ tarih-> biçimi muhtemelen $> $ biçiminde olmalıdır – Patrick

0

Normal tarih-saat değerini mysql datetime biçimine dönüştürmek için şu işlevi kullanıyorum

Bu kimse yardımcı olacaktır

Sanki tarih saat değerleri dönüştürür,

2015-06-04 09:55 AM -> 2015-06-04 09:55 
2015-06-04 03:55 PM -> 2015-06-04 15:55 
2015-06-04 12:30 AM -> 2015-06-04 00:55 

Umut.

2

Sen Ouzo goodies lib deneyin ve akıcı bir şekilde yapabilirsiniz:

echo Clock::now()->plusHours($hours)->format("Y-m-d H:m:s"); 

API çoklu işlemini yapabilir.

6

Doğru

Sen bunu başarmak için strtotime() kullanabilirsiniz: şüphe

$new_time = date("Y-m-d H:i:s", strtotime('+3 hours', strtotime($now))); // $now + 3 hours 
İlgili konular