比较mysql和php中的time()的时间



我需要帮助。这是一个场景,链接在早上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
}

相关内容

  • 没有找到相关文章