Ne tarih biçimlerini PHP işlevi strtotime () desteği?

4 Cevap php

Gerçekten PHP işlevi strtotime (), ama dediğim gibi user manual desteklenen tarih biçimleri tam bir açıklama vermez. Sadece "10 Eylül 2000", "1 hafta 2 gün 4 saat 2 saniye", ve "önümüzdeki Perşembe" gibi birkaç örnek verir.

Nerede tam bir açıklamasını bulabilirsiniz?

4 Cevap

I can't find anything official, but I saw a tutorial that says strtotime() uses GNU Date Input Formats. Those are described in detail in the GNU manual.

One discrepancy I notice is that "next" doesn't match the behaviour described in the GNU manual. Using strtotime(), "next Thursday" will give you the same result as "Thursday", unless today is a Thursday.

Bugün, o, bir Perşembe ise,

  • strtotime ("Perşembe") == strtotime ("bugün")
  • strtotime ("önümüzdeki Perşembe") == strtotime ("bugün + 7 gün")

Bugün, o, bir Perşembe değilse

  • strtotime ("Perşembe") == strtotime ("önümüzdeki Perşembe")

PHP 5.2.6 kullanıyorum.

Update:

Ben bu yayınlanmıştır beri kullanım kılavuzu güncellendi, yoksa ben kör oldu sanırım. Şimdi relative formats üzerine bir bölüm içeriyor Date and Time Formats chapter için bir bağlantı içerir.

Bunu aşağıdaki C kodu bakarak ne yaptığını izlemek başlayabilirsiniz:

http://cvs.php.net/viewvc.cgi/php-src/ext/date/php_date.c

PHP_FUNCTION ara (strtotime)

Ayrıca bu ana regex ayrıştırma:

http://cvs.php.net/viewvc.cgi/php-src/ext/date/lib/parse_date.re

İyi şanslar

Benim deneyim strtotime in () bile uzaktan bir tarih gibi görünüyor şey kabul edebilir. Onun sınırları anlamaya en iyi yolu, değerleri bir test komut dosyası ve fişi oluşturmak ve ne yapar ve işe yaramazsa görmektir.

$input = "Apr 10th";
print(date('Y-m-d', strtotime($input)));

Sadece $ girdi değişkeni değişen tutmak ve sonuçlarını gözlemlemek.

Temelde date strtotime yaratabilirsiniz şey ayrıştırmak olacaktır. Bir istisna dışında, bu non-US biçimi ile sorunları var. Yani bir yerde o Ay-Gün-Yıl tipi biçimlendirme tutmak.