Bir tarih biçimlendirme Sorunları

1 Cevap php

Benim için bir tarih ve saati biçimlendirmek için bir fonksiyon yazmaya çalışıyorum. Ben sadece bir tarih biçimleri hemen hemen aynı işleve sahip. Bu işlev çalışıyor. Ben sadece denemek ve bir süre ile tarihi biçimlendirmek için bazı kod eklendi. Bu "18 Mayıs 2009 21:50" gibi bir şey dönmesi gerekir ama ben bu uyarıyı alıyorum:

Warning: mktime() expects parameter 6 to be long, string given in
public_html/include/functions.php on line 421

İşte var kodu:

function dateTimeFormat($dateIn)
{
   $x = explode(" ",$dateIn);
   $y = explode("-",$x[0]);
   $z = explode(":",$x[1]);

   $year = $y[0]; 
   $month = $y[1];
   $day = $y[2];
   $hour = $z[0];
   $min = $z[1];

   $dateOut =date("F j, Y h:i A", mktime($hour, $min, 0, $month, $day, $year)); 

   return $dateOut;
}

Ne koyuyor çok yanlış. Bu ortaya koyar:

December 31, 1969 07:00 PM

ancak veritabanında zaman damgası

2009-05-18 05:07:39

1 Cevap

PHP zaten gayet iyi bir tarih ayrıştırma işlevi vardır: strtotime() . It returns a Unix timestamp which you can pass to date().

Diğer bir deyişle, işlev bu indirgenebilir:

function dateTimeFormat($dateIn)
{
    return date("F j, Y h:i A", strtotime($dateIn));
}