Unix zaman damgası için datetime

7 Cevap php

Unix zaman damgası biçimi 0000-00-00 bir tarih 00:00:00 (datetimesql) dönüştürmek için bir PHP fonksiyonu üzerinde oturan kimse var mı?

Şimdiden teşekkürler.

7 Cevap

Başka bir seçenek SQL ile bu soruyu etiketlenmiş gibi: MySQL fonksiyonları FROM_UNIXTIME ve UNIX_TIMESTAMP -> MySQL manual

SELECT UNIX_TIMESTAMP(datetime_column) FROM table

Bu genellikle bir PHP işlevi çağrısı daha hızlıdır.

@ Bartek - Eğer belirtildiği gibi, PHP'nin strtotime function bunun için idealdir. O "yarın" veya "5 ay" gibi dizeler dahil en yaygın tarih formatlarını işleyebilir.

strptime() zaman ayrıştırmak ve yapılandırılmış bir diziye çevirmek için kullanın.

Sonra bir UNIX zaman damgası almak için mktime() fonksiyonunun içine sonuçlarını geçmektedir.

PHP 5.2 bunu yapmak için bunu yapabilirsiniz:

$datetime = new DateTime();
echo $datetime->format('U');

See it in action

PHP 5.3 olarak bunu yapmak için daha yeni bir yoludur:

$datetime = new DateTime();
echo $datetime->getTimestamp();

See it in action

Try strptime.

Ben burada sizin için bir çözüm var:

/* From MySQL datetime to Unix Timestamp 2003-12-30 23:30:59 -> 1072834230 */
function convertMysqlDateTimeToUnixTimeStamp($date) {
    $yr=strval(substr($date,0,4));
    $mo=strval(substr($date,5,2));
    $da=strval(substr($date,8,2));
    $hr=strval(substr($date,11,2));
    $mi=strval(substr($date,14,2));
    $se=strval(substr($date,17,2));
    return mktime($hr,$mi,$se,$mo,$da,$yr);
}

(Size kolaylık sağlamak için) bir fonksiyonu haline wvanbergen çözümünü Encapusulating

//Convert SQL datetime to unixtime -- by johnboiles
function datetimeToUnixtime($datetime){
    $result = mysql_query("select unix_timestamp('$datetime')");
    $unixtime = mysql_fetch_array($result);
    return $unixtime[0];
}