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?
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.
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';
}