Ben formatı YYYY-DD-MM ve MySQL bir zaman damgası PHP dize varsa, aralarında dönüştürmek için iyi bir yolu var mı?

6 Cevap php

Ben tarih dizisi ve MySQL zaman damgası arasında karşılaştırmalar yaparken ilgileniyorum. Ancak, kolay bir dönüşüm göremiyorum. Ben belirgin bir şey bakan muyum?

6 Cevap

Formatında timestamp dönüştürme:

date('Y-m-d', $timestamp);

Timestamp biçimlendirilmiş dönüştürme:

mktime(0, 0, 0, $month, $day, $year, $is_dst);

Başka evrakların date ve mktime bakın.

O bir biçimlendirilmiş tarihi olarak stroing için MySQL TARİH formatını kullanmak isteyip size kalmış depolama söz konusu olduğunda; Bir UNIX zaman damgası olarak depolamak için bir tamsayı olarak; veya okunabilir bir biçime bir sayısal zaman damgası dönüştürür MySQL'in DAMGASI biçimi kullanabilirsiniz. Check the MySQL Doc DAMGASI bilgi için.

Sen MySQL UNIX_TIMESTAMP () işlevini kullanarak satın PHP strtotime () veya getdate () kullanmak zorunda önleyebilirsiniz.

SELECT UNIX_TIMESTAMP(timestamp) FROM sometable

) Çıkan veriler standart bir tamsayı Unix zaman damgası olacak, böylece zaman (doğrudan karşılaştırma yapabilirsiniz.

Ben sürecini kolaylaştırmak için bu küçük işlevi yazdı:

/**
 * Convert MySQL datetime to PHP time
 */
function convert_datetime($datetime) {
  //example: 2008-02-07 12:19:32
  $values = split(" ", $datetime);

  $dates = split("-", $values[0]);
  $times = split(":", $values[1]);

  $newdate = mktime($times[0], $times[1], $times[2], $dates[1], $dates[2], $dates[0]);

  return $newdate;
}

Bu yardımcı olur umarım

strtotime() ve getdate() dizeleri ve zaman damgaları gelen tarihleri ​​almak için kullanılan iki işlevi vardır. MySQL ve PHP olsa damgaları arasında dönüştüren bir standart kütüphane fonksiyonu yoktur.

PHP Date işlevini kullanın. Siz mysql UNIX_TIMESTAMP işlevini kullanarak sorgudaki bir Unix zaman damgasına mysql zaman damgası dönüştürmek gerekebilir.

Formun bir tarih dizesi:

YYYY-MM-DD

onunla ilişkili bir zaman vardır. Bir MySQL zaman damgası şekildedir:

YYYY-MM-DD HH:mm:ss

ikisini karşılaştırmak için, örneğin gece yarısı gibi, tarih dize bir saat eklemek gerekecek ya

$datetime = '2008-08-21'.' 00:00:00';

ve sonra aralarında epoc zamanı karşılaştırmak için bir işlevini kullanın

if (strtotime($datetime) > strtotime($timestamp)) {
    echo 'Datetime later';
} else {
    echo 'Timestamp equal or greater';
}