gpt4 book ai didi

php - 日期比较只考虑时间(PHP)

转载 作者:行者123 更新时间:2023-11-29 01:53:44 25 4
gpt4 key购买 nike

这是我的功能:

function hasTimeElapsed($date, $time) {
if (new DateTime() > new DateTime($date.' '.$time)) {
return true;
} else {
return false;
}
}

$date 输入为 2015-12-29(MySQL 格式),$time 输入为 04:00:00(MySQL 格式)。

例如,现在是 3 点 10 分。如果那个 $time 是 3:11,它就会过期,完全忽略日期不同的事实(29,而不是 27)。如何准确检查时间是否已过,包括实际日期?

最佳答案

这可能不是答案,而且对于评论来说太长了;我无法复制您所观察到的内容。这是我正在使用的 stub :

<?php
date_default_timezone_set('America/Chicago');

$tests = array(
array('2015-12-25', '04:00:00'),
array('2015-12-26', '04:00:00'),
array('2015-12-27', '04:00:00'),
array('2015-12-28', '04:00:00'),
array('2015-12-29', '04:00:00'),
);

$now = new DateTime('2015-12-27 03:11:10');
print 'Current time: ' . $now->format('Y-m-d H:i:s') . "\n";

foreach ($tests as $dt) {
print sprintf("%s %s => %s\n",
$dt[0],
$dt[1],
hasTimeElapsed($dt[0], $dt[1], $now) ? 'T' : 'F'
);
}

function hasTimeElapsed($date, $time, $now) {
$supplied = new DateTime($date.' '.$time);
return $now > $supplied;
}
?>

结果符合预期:

$ php test.php
Current time: 2015-12-27 03:11:10
2015-12-25 04:00:00 => T
2015-12-26 04:00:00 => T
2015-12-27 04:00:00 => F
2015-12-28 04:00:00 => F
2015-12-29 04:00:00 => F

如果我使用当前美国中部时间 2015-12-26 23:39:10,结果相同。你能用上面类似的 stub 检查你的结果吗?

关于php - 日期比较只考虑时间(PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34477783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com