我需要比较;今天的日期和时间";以及未来的两次约会。这些日期也包括时间信息。
目前我有一个问题;如果条件";没有输出预期的结果。
这就是代码和实际示例:
$date_a = new DateTime('now');
$date_b2 = new DateTime('wednesday + 7 day 08:00');
$date_c2 = new DateTime('saturday + 7 day 20:00');
$intervaln = date_diff($date_a,$date_b2);
$interval2n = date_diff($date_a,$date_c2);
$diff1n = $intervaln->format('%d d. %h h. %i min.');
$diff2n = $interval2n->format('%d d. %h h. %i min.');
if ($diff1n > $diff2n) {
echo $diff1n;
}
else if ($diff1n < $diff2n) {
echo $diff2n;
}
正如您所看到的,它输出第二个条件,但它应该是第一个条件,因为$diff1n
比$diff2n
具有更大的时间差。
将这些日期和时间相互比较的正确方法是什么?
在时间上尝试strtotime((。
$diff1n = $intervaln->format('%d d. %h h. %i min.');
$diff2n = $interval2n->format('%d d. %h h. %i min.');
$d1=strtotime($diff1n);
$d2=strtotime($diff2n);
if ($d1> $d2) {
echo $diff1n;
}
else if ($d1< $d2) {
echo $diff2n;
}
您可以使用setTimestamp((函数将日期转换为时间戳,然后获得两者之间的差值,将其除以使一天的整数为.2的秒,并将其打印为"2天后";然后将其与天数进行比较,即
// $diffdateAandNowtime is the difference between the uni time of dateA and nowtime
// $diffdateBandNowtime is the difference between the uni time of dateB and nowtime
$diffdateAandNowtime = 4600;
$diffdateBandNowtime = 5600;
$nowtime = 36000;
//time here is in seconds
if( $diffdateAandNowtime > $diffdateBandNowtime )
{
//run some code here
echo $diffdateAandNowtime;
}
elseif( $diffdateBandNowtime > $diffdateAandNowtime )
{
echo $diffdateAandNowtime;
}
请参阅此处获取setTimestamp((