2016-04-04 19 views
0

yazma:PHP'nin strtotime() Nisan'ın kısaltma (APR) ile çalışmaz

00:00:00 
00:00:00 

Ama aslında olsun: Ben beklediğiniz

echo date('H:i:s', strtotime('Mar-29-2016')) . "<br />"; 
echo date('H:i:s', strtotime('Apr-3-2016')); 

almak için

00:00:00 
16:16:00 

Değiştirmek için:

echo date('H:i:s', strtotime('March 29 2016')) . "<br />"; 
echo date('H:i:s', strtotime('April 3 2016')); 

İşleri çıkışı yaparak beklendiği gibi:

strtotime hakkında() Anlamadım ne
00:00:00 
00:00:00 

?

+1

Bu eko tarihiyle ilgili ('H: i: s', strtotime ('Apr-03-2016')); '? –

+0

Önde gelen 0'ın eklenmesi de doğru şekilde çalışır. Strtotime() neden onsuz bir zaman damgası verir? – Verl

+1

[M-D-Y biçimini kullanırsanız] (https://eval.in/547545) doğru çalıştığını fark ettiniz. Sadece bu formatı kullan. PHP zaman ve tarih işlevleri, tarihler için örneğin unix zaman damgaları veya Amerikan biçimleri etrafında dönme eğilimindedir. MM-GG-YYYY - "herhangi bir formattan" bir unix zaman damgasına yapılan sihirli dönüşüm, bunları ararken StackOverflow üzerinde yoğun şekilde belgelenen kusurları vardır. –

cevap

1

Dene:

echo date('H:i:s', strtotime('Apr-03-2016')); 

strtotime fonksiyonu bir İngiliz tarih biçimini içeren bir dize verilecek ve bir Unix zaman damgası içine bu biçimi ayrıştırmak için çalışacağız bekliyor.

0

Görünüşe göre Apr-3-2016 geçerli bir tarih biçimidir. php docs

Month abbreviation, day and year M "-" DD "-" y "May-09-78", "Apr-17-1790" 
1

"Nisan-3-2016" Kimden geçerli bir PHP bileşik tarih/saat dize değil. Dizginizi strtotime()'un tanıyabileceği bir şeye dönüştürün. Örneğin, bazı diğer seçeneklere (dize) Aşağıdaki ilk sonucunu karşılaştırmak:

:

echo date('r', strtotime('Apr-3-2016')) . "\n"; 
echo date('r', strtotime('3-Apr-2016')) . "\n"; 
echo date('r', strtotime('2016-04-03')) . "\n"; 
echo date('r', strtotime('4/3/2016')) . "\n"; 

Sun, 03 Apr 2016 16:16:00 -0400 
Sun, 03 Apr 2016 00:00:00 -0400 
Sun, 03 Apr 2016 00:00:00 -0400 
Sun, 03 Apr 2016 00:00:00 -0400 

örneğin, "Nisan-3-2016" biçimini "3-Nisan-2016" dönüştürmek için

$date = "Apr-3-2016"; 
list($m, $d, $y) = explode("-", $date); 
$newdate = join("-", array($d, $m, $y));