只是想知道如何制作 2 UTC 日期时间对象。将 1 秒添加到其中一个。然后比较它们,知道其中一个是未来的 1 秒。
我一直在尝试这个...
<?php
$datetime1 = new DateTime("now", new DateTimeZone("UTC"));
$datetime2 = new DateTime("now", new DateTimeZone("UTC"));
$datetime2 = $datetime2->add(new DateInterval('PT' . 1 . 'M'));
$diff=$datetime1->diff($datetime2);
echo $diff->format('%d days, %m month, %y years, %m minutes, %s seconds');
预期 : 0 天, 0 个月, 0年, 0 分钟, 1 秒
实际 : 0 天, 0 个月, 0 年, 0分钟, 0 秒
我哪里出错了?
你犯了三个错误:
1( 您应该从 datetime1 构造 $datetime 2,以确保您从完全相同的时间开始。
$datetime1 = new DateTime("now", new DateTimeZone("UTC"));
$datetime2 = new DateTime('@'.$datetime1->getTimestamp());
2(要添加一秒钟,请使用"S"而不是"M"(代表分钟(
$datetime2 = $datetime2->add(new DateInterval('PT' . 1 . 'S'));
3( 日期间隔中分钟的格式是 %i 而不是 %m
$diff=$datetime1->diff($datetime2);
echo $diff->format('%d days, %m month, %y years, %i minutes, %s seconds');
更改为
$datetime2 = $datetime2->add(new DateInterval('PT' . 1 . 'S'));
您将拥有:
0 days, 0 month, 0 years, 0 minutes, 1 seconds
见 https://ideone.com/ASGluQ