我需要帮助。这是一个场景,链接在早上7点到7点30分可用,这段时间来自mysql数据库。
StartTime = 2014-03-19 07:00:00
EndTime = 2014-03-20 07:30:00
我试过把它转换成php中的strtotime()。
这是我的代码$date_s = new DateTime($row->StartDate);
$date_e = new DateTime($row->EndDate);
$g = date("Y-m-d H:i:s");
<?= strtotime($date_s->format('Y-m-d H:i:s')) > strtotime($g) && strtotime($date_e->format('Y-m-d H:i:s')) < strtotime($g) ? "true" : "false"; ?>
的结果总是失败的我,我堆栈大约1小时前。有人能帮忙吗?: D
可以直接比较DateTime对象:
$date_s = new DateTime($row->StartDate);
$date_e = new DateTime($row->EndDate);
$now = new DateTime();
if ($now > $date_s && $now < $date_e) {
}
或者不使用DateTime对象:
$date_s = strtotime($row->StartDate);
$date_e = strtotime($row->EndDate);
$now = time();
if ($now > $date_s && $now < $date_e) {
}
使用其中之一但不能同时使用
MySQL有函数将日期转换为/从unix时间戳。
FROM_UNIXTIME ()http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html function_from-unixtime
UNIX_TIMESTAMP ()http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html function_unix-timestamp
也许你可以从你的查询中返回一个时间戳值。
SELECT fields, UNIX_TIMESTAMP(date_field) FROM table ...
下面的代码可能会对您有所帮助
<?php
$now = time();
$starttime = "2014-03-19 07:00:00";
$endtime = "2014-03-20 07:30:00";
if($now > strtotime($starttime) && $now < strtotime($endtime)){
//do something
}