在我的PHP应用程序中,我正在尝试比较日期时间值,如下所示:
if($datetime_from_db < date('Y-m-d H:i:s'))
{
// then do something
}
两个值的格式相同。我无法弄清楚为什么它只比较日期并忽略时间。日期和时间值对我来说都很重要,但我不知道如何使它工作。
答案 0 :(得分:19)
将字符串(例如"2011-02-14 15:46:00"
)与另一个字符串进行比较实际上并不比较日期,它会根据{{比较两个字符串3}}。您需要比较实际的数字时间戳:
strtotime($datetime_from_db) < time()
答案 1 :(得分:6)
如果您希望这适用于2038年以后的日期,则不能使用strtotime()或time()。
有关说明,请参阅this question。
更好的方法:
new DateTime($datetime_from_db) < new DateTime();
答案 2 :(得分:0)
这可能会对你有帮助。
$today = date("m-d-Y H:i:s");
$thisMonth =date("m");
$thisYear = date("y");
$expectedDate = $thisMonth."-08-$thisYear 23:58:00";
//pr($today);
//pr($expectedDate);
if (strtotime($expectedDate) > strtotime($today)) {
echo "Expected date is greater then current date";
return ;
} else
{
echo "Expected date is lesser then current date";
}