PHP strtotime () hiçbir şey verir

3 Cevap php

İşte benim PHP kodu:

echo '<br />1. '.$w_time_no;
echo '<br />2. '.strtotime($w_time_no);
echo '<br />3. '.date('G:i', strtotime($w_time_no));

Ben ne olsun:

1. 0000-00-00 22:00:00
2.
3. 2:00

Neden strtotime () tek başına hiçbir şey verir? Sunucu ayarları ile yanlış bir şey var mı? Sunucu: Apache/2.2.11 (Win32), PHP 5.2.10, MySQL istemci sürümü: 5.0.51a.

3 Cevap

strtotime etmez "çıktı" bir şey, arada: o false, bir hata durumunda döndürür; bakın manual:

Return Values

Returns a timestamp on success, FALSE otherwise. Previous to PHP 5.1.0, this function would return -1 on failure.

Değil herhangi çıktı echo does Ne: false boş bir dize olarak kabul edilir, ve hiçbir şey outputed olsun.

strtotime belgelerine Ayrıca tarihler için geçerli aralığı verir:

Note: The valid range of a timestamp is typically from Fri, 13 Dec 1901 20:45:54 UTC to Tue, 19 Jan 2038 03:14:07 UTC. (These are the dates that correspond to the minimum and maximum values for a 32-bit signed integer.) Additionally, not all platforms support negative timestamps, therefore your date range may be limited to no earlier than the Unix epoch. This means that e.g. dates prior to Jan 1, 1970 will not work on Windows, some Linux distributions, and a few other operating systems. PHP 5.1.0 and newer versions overcome this limitation though.

'0000-00-00' bu aralığın dışında, bu yüzden geçerli bir tarih olarak değil; dolayısıyla false dönüş değeri.


As a sidenote, to really know what's inside a variable, you can use var_dump.
As a bnus, used with Xdebug, it'll get you a nice-formated output ;-)

0000-00-00 geçerli bir tarih değil.

0 olarak giriş zamanı yorumluyor ve sunucu timezone için telafi çünkü tarih () çıktıyı verir, ben kabul ediyorum. I date('Y-m-d H:i', strtotime(...)) 1970/01/01 02:00 vereceğini bahse girerim

Sen strtotime() time() için mistaking.

strtotime zaman, o zaman ..... dönüştürmek için bir dize ihtiyacı anlamıyla dizedir.

Başarı bir zaman damgasını döndürür, FALSE aksi. PHP 5.1.0 Önceki, bu işlev başarısız -1 dönecekti.

Yani o zaman dize doğrulamak için başarısız oluyor.