php tarih MySQL GÖSTER TABLO Durum ile biçimlendirme

3 Cevap php

Muhtemelen basit bir şey eksik:

<?php
$con=mysql_connect('localhost','xxx','xxx');

$db=mysql_select_db('xxx');

$sql = mysql_query("SHOW TABLE STATUS WHERE `name`=\"my_table\"");

$foo=mysql_fetch_array($sql);

return $foo['Update_time'];

// returns 2010-03-31 16:51:06
?>

nasıl ben bu biçimlendirmek. Ben kullanarak çalıştı

date('l jS F Y @ H:i:s', $foo['Update_time']);

ancak bu verir:

Thursday 1st January 1970 @ 01:33:30

muhtemelen tarih olarak () bir zaman damgası bekliyor.

teşekkürler .. emin im bu çok açıktır ama benim zihinleri boş gitti

3 Cevap

Ve bir tarih içeren bir dize - date function ikinci parametre olarak bir UNIX Timestamp bekliyor.

Bu bir zaman damgası için bu dizeyi dönüştürmek zorunda kalıyoruz - strtotime fonksiyonu kullanılarak yapılabilir:

$ts = strtotime($foo['Update_time']);
echo date('l jS F Y @ H:i:s', $ts);


Note 1 : the YYYY-MM-DD HH-MM-SS format is well understood by strtotime ; which is often helpful, when dealing with dates that come from MySQL.

Not 2: date ve strtotime kullanarak hangi damgaları üzerinde çalışma (reprenseted as 32 bits integers, counting the number of seconds since 1970-01-01) , you will be limited to dates between 1970 and 2038 ; if you need to work with dates outside of that range, you'll have to use the DateTime class .

Bu çalışması gerekir:

date('l jS F Y @ H:i:s', strtotime($foo['Update_time']));

strtotime() bir tarih dizesi alacak ve daha sonra date() ile kullanabileceğiniz, bir zaman damgası çevirmek.

Sen strtotime işlevini kullanmanız gerekir:

date('l jS F Y @ H:i:s', strtotime($foo['Update_time']));