M / d / y formatında PHP mysql datetime dönüştürmek nasıl?

6 Cevap php

Ben m / d / y ancak aşağıdaki kod çalışmıyor, 1969/12/31 yerine Birisi nasıl bunu bana gösterebilir döndürür bu biçime bir mysql DATETIME dönüştürmek için çalışıyorum?

$fromMYSQL = '2007-10-17 21:46:59'; //this is the result from mysql DATETIME field
echo date("m/d/Y", $fromMYSQL);

6 Cevap

Ben gerçekten ne istiyorum bu olduğunu düşünüyorum:

$fromMYSQL = '2007-10-17 21:46:59';
echo date("m/d/Y", strtotime($fromMYSQL));

Tarih ikinci argümanı bir zaman damgası ve ben ne oluyor PHP böylece 1969/12/31 ... Bir -1 damgası olarak dize görüyor olduğunu düşünüyorum.

Yani, tarih dize sürümünden bir zaman damgası almak için, kullandığınız strtotime

SQL:

SELECT whatever, UNIX_TIMESTAMP(date) date FROM table WHERE whatever

PHP:

date('m/d/Y', $result['date']);

Sen Y tarih biçimi dizesi int bir sermaye gerekir. küçük y Bir iki haneli yıl verir ve büyük harf 'Y', dört basamaklı bir yıl verin.

$fromMYSQL = '2007-10-17 21:46:59';
echo date("m/d/Y", strtotime($fromMYSQL));

PHP Manual Page For date, bazı yardım olabilir.

Iyi yolu QueryString doğrudan DateFormat dönüştürmek için:

$TimeFormat = "%m/%d/%Y";  // your pref. Format

$sql = "SELECT DATE_FORMAT(DateCol , '" . $TimeFormat . "') as ConvertDate FROM tblTest";

Aksi takdirde ihtiyaçlarınıza bu işlevi değiştirebilirsiniz:

function format_date($original, $format) {
    if (empty($original)) {
    	$original = date("Y-m-d H:i:s");
    }
    $original = ereg_replace("30 Dez 1899", "30-01-1973", $original);
    $format = ($format=='date' ? "%m-%d-%Y" : $format);
    $format = ($format=='germandate' ? "%d.%m.%y" : $format);
    $format = ($format=='germandaydate' ? "%A, %d.%m.%Y" : $format);
    $format = ($format=='germantime' ? "%H:%M" : $format);
    $format = ($format=='germandatetime' ? "%d.%m.%y %H:%M:%S" : $format);
    $format = ($format=='datetime' ? "%m-%d-%Y %H:%M:%S" : $format);
    $format = ($format=='mysql-date' ? "%Y-%m-%d" : $format);
    $format = ($format=='mysql-datetime' ? "%Y-%m-%d %H:%M:%S" : $format);
    $format = ($format=='mssql-date' ? "%Y%m%d" : $format);
    $format = ($format=='mssql-datetime' ? "%Y%m%d %H:%M:%S" : $format);
    $format = ($format=='Ymd' ? "%Y-%m-%d" : $format);
    return !empty($original) ? strftime($format, strtotime($original)) : "";
}

Iki konu:

1) Bir sermaye Y gerekir

2) Bu doğru bir tarih türü gerekir.

Denemek

$fromMYSQL = date_create  ('2007-10-17 21:46:59');    
echo date("m/d/Y", $fromMYSQL);

Üzgünüz, strtotime bir zaman damgası için doğru dönüşüm. date_create bir DateTime nesnesi döndürür.

Temelde, date() bu tarih / zamanı hesaplar ve hangi formatları bir Unix zaman damgası bekliyor - Ben h ttp://stackoverflow.com/questions/499014/i-need-to-change-the-date-format-using-php/499021#499021 benim cevap kaplı bu. Muhtemelen bir Unix zaman damgası gibi görünen bir şeye PHP'nin ördek yazarak karıştırıldıysa alır MySQL sorgu sonucu, gelir, ama hiç mantıklı bir dize geçiyoruz.

Ben cevap tarih sütunları ile ilgili yaklaşımları bir çift açıklar.