【发布时间】:2014-10-29 06:19:22
【问题描述】:
我针对日期 02/09/2014 11:30pm 和 03/09/2014 12:00am 创建了两个时间戳。
这些时间戳之间只有 30 分钟的差异,但由于日期已从 10 月 2 日更改为 10 月 3 日,因此应以一天计算。
我的代码是
$current_time_zone = isset($_COOKIE['IANA_timezone_key']) ? $_COOKIE['IANA_timezone_key'] : "";
$d1 = new DateTime(date('Y-m-d'), timezone_open($current_time_zone));
$d2 = new DateTime(date('Y-m-d'), timezone_open($current_time_zone));
$d1->setTimestamp($row["transitions_date"]); // $row["transitions_date"] has timestamp value
$d2->setTimestamp($curr_transition_in_date); // $curr_transition_in_date has timestamp value
$diff = date_diff($d1, $d2);
$day_difference = $diff->days;
我们将不胜感激。
【问题讨论】:
-
您的意思是要为您的案例打印“1 天”?
-
@sithu 在上述情况下,它返回 0 作为天差,但如果日期不同,它应该返回“1”天。
-
我认为你应该重新考虑你的方法;如果我们扩展您的断言“由于日期从 10 月 2 日更改为 10 月 3 日,它应该以一天计算”,您还必须说 X 年的 12 月 31 日和 1 月 1 日之间存在一年的差异X+1 年。说有“一天”的差异是指“大于或等于一天的持续时间”。
标签: php date datetime unix-timestamp datetime-format