只是想知道如何制作2个UTC DateTime对象。向其中一个添加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秒
我哪里错了?
答案 0 :(得分:3)
你犯了三个错误:
1)你应该从datetime1构造$ datetime2,以确保你从完全相同的时间开始。
$datetime1 = new \DateTime("now", new \DateTimeZone("UTC"));
$datetime2 = new \DateTime('@'.$datetime1->getTimestamp());
2)添加一秒钟使用&#39; S&#39;而不是&#39; M&#39; (代表分钟)
$datetime2 = $datetime2->add(new DateInterval('PT' . 1 . 'S'));
3)dateInterval中分钟的格式是%i而不是%m
$diff=$datetime1->diff($datetime2);
echo $diff->format('%d days, %m month, %y years, %i minutes, %s seconds');
答案 1 :(得分:1)
更改为
$datetime2 = $datetime2->add(new DateInterval('PT' . 1 . 'S'));
你将拥有:
0 days, 0 month, 0 years, 0 minutes, 1 seconds