为什么我无法成功减去 php 中的两个日期时间值?
Why I can't successfully subtract two datetime values in php?
我有以下代码:
echo "first row " . $firstRow["begin_date"];
echo " super beg " . $superbegintime;
echo " duration " . $duration;
if(($firstRow["begin_date"] - $superbegintime) >= $duration)
{
echo "it works!";
}
$firstRow["begin_date"]
是从数据库
中获取的 DATETIME
类型字段
$superbegintime
创建如下:
$date = new DateTime();
$superbegintime= $date->add(DateInterval::createFromDateString('10 minutes'))->format('Y-m-d H:i:s');
和 $duration
是一个应该表示秒数的字段 $duration = 15;
。
我无法输入 if 语句并打印 it works!
消息,我在这里做错了什么?
您正在对字符串进行比较和计算,这可能会产生问题并且无法得到正确的结果,尤其是当您将它们与整数进行比较时(并且没有指定该数字的实际含义)。 DateTime 对象允许您进行数学运算,然后将差异与持续时间进行比较。 difference 和 duration 都是 DateInterval 对象,具有可比性。
$beginDate = new DateTime($firstRow["begin_date"]);
$superbegintime = new DateTime($superbegintime);
$duration = DateInterval::createFromDateString('15 seconds');
$diff = $beginDate->diff($superbegintime);
if($diff >= $duration)
{
echo "it works!";
}
我有以下代码:
echo "first row " . $firstRow["begin_date"];
echo " super beg " . $superbegintime;
echo " duration " . $duration;
if(($firstRow["begin_date"] - $superbegintime) >= $duration)
{
echo "it works!";
}
$firstRow["begin_date"]
是从数据库
DATETIME
类型字段
$superbegintime
创建如下:
$date = new DateTime();
$superbegintime= $date->add(DateInterval::createFromDateString('10 minutes'))->format('Y-m-d H:i:s');
和 $duration
是一个应该表示秒数的字段 $duration = 15;
。
我无法输入 if 语句并打印 it works!
消息,我在这里做错了什么?
您正在对字符串进行比较和计算,这可能会产生问题并且无法得到正确的结果,尤其是当您将它们与整数进行比较时(并且没有指定该数字的实际含义)。 DateTime 对象允许您进行数学运算,然后将差异与持续时间进行比较。 difference 和 duration 都是 DateInterval 对象,具有可比性。
$beginDate = new DateTime($firstRow["begin_date"]);
$superbegintime = new DateTime($superbegintime);
$duration = DateInterval::createFromDateString('15 seconds');
$diff = $beginDate->diff($superbegintime);
if($diff >= $duration)
{
echo "it works!";
}