PHP datediff 超时问题

用户xöa

我希望在两次之间获得 datediff:第一次是在晚上(比如 23:59:59),第二次是在新的一天(比如 02:02:02)。使用 datediff 时,它没有显示正确的差异:

echo date_diff(date_create("02:02:02"), date_create("23:59:59"))->format('%H:%I:%S');
response: 21:57:57 (IS WRONG SOMEHOW)

echo date_diff(date_create("02:02:02"), date_create("00:00:00"))->format('%H:%I:%S');
response: 02:02:02 (ECHOS CORRECT TIME)

我怎么能让它工作?

安伯

如果日期改变了,那么你必须告诉它,否则它会假设今天。你可以这样检查:

echo date_diff(date_create("tomorrow 02:02:02"), date_create("23:59:59"))->format('%H:%I:%S');
// 02:02:03

您可以通过转储来验证 date_create 正在创建的内容:

var_dump(date_create("02:02:02"));
// object(DateTime)(
//   'date' => '2019-08-16 02:02:02.000000',
//   'timezone_type' => 3,
//   'timezone' => 'America/New_York'
// )

var_dump(date_create("tomorrow 02:02:02"));
// object(DateTime)(
//   'date' => '2019-08-17 02:02:02.000000',
//   'timezone_type' => 3,
//   'timezone' => 'America/New_York'
// )

var_dump(date_create("00:00:00")); // 00:00 being start of day, not end
// object(DateTime)(
//   'date' => '2019-08-16 00:00:00.000000',
//   'timezone_type' => 3,
//   'timezone' => 'America/New_York'
// )

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章