如何在两个DateTime对象之间获得毫秒?
$date = new DateTime(); $date2 = new DateTime("1990-08-07 08:44");
$stime = new DateTime($startTime->format("d-m-Y H:i:s")); $etime = new DateTime($endTime->format("d-m-Y H:i:s")); $millisec = $etime->getTimestamp() - $stime->getTimestamp();`
我收到了错误
Call to undefined method DateTime::getTimestamp()
严格来说,你不能.
这是因为DateTime类的最小时间单位是秒.
如果您需要包含毫秒的测量值,请使用microtime()
编辑:
另一方面,如果你只想获得两个ISO-8601 datetimes之间的间隔(毫秒),那么一个可能的解决方案就是
function millisecsBetween($dateOne,$dateTwo,$abs = true) { $func = $abs ? 'abs' : 'intval'; return $func(strtotime($dateOne) - strtotime($dateTwo)) * 1000; }
请注意,默认情况下,上述函数返回绝对差值.如果您想知道第一个日期是否更早,则将第三个参数设置为false.
// Outputs 60000 echo millisecsBetween("2010-10-26 20:30","2010-10-26 20:31"); // Outputs -60000 indicating that the first argument is an earlier date echo millisecsBetween("2010-10-26 20:30","2010-10-26 20:31",false);
在时间数据类型的大小为32位的系统上,例如Windows7或更早版本,millisecsBetween仅适用于1970-01-01 00:00:00和2038-01-19 03:14:07之间的日期(参见Year 2038 problem) .
原文地址:https://www.jb51.cc/php/133558.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。