$time1 = strtotime('23:56');
$time2 = strtotime('00:21');
echo ($time1 - $time2)/60;
预期的o / p为25
。但它会返回1415
;
如果我改变
$time2= strtotime('24:21');
返回 - 25
部分正确(因为它返回负数)。
任何人都可以建议我,其他一些功能要计算 分钟的时差。
谢谢:)
答案 0 :(得分:9)
如果你只使用当前日期的时间strtotime:
$time1 = strtotime('23:56'); // 2012-12-06 23:56
$time2 = strtotime('00:21'); // 2012-12-06 00:21
echo ($time1 - $time2)/60;
答案 1 :(得分:5)
这是因为你没有指定一天,所以00:21是今天的开始,23:56是今天的结束
1415是23小时的差异。答案 2 :(得分:2)
php的回答是正确的,怎么知道你第二天想到的?只需从1440(一天中的分钟)中减去你的价值,然后你就会得到想要的结果......
答案 3 :(得分:2)
假设$time2
必须大于或等于$time1
。然后相应地调整$time2
:
示例1 - 当天
$time1 = strtotime('00:21');
$time2 = strtotime('23:56');
if($time2 < $time1) {
$time2 += 24 * 60 * 60;
}
echo ($time2 - $time1) / 60; // 1415
示例2 - 日期翻身
$time1 = strtotime('23:56');
$time2 = strtotime('00:21');
if($time2 < $time1) {
$time2 += 24 * 60 * 60;
}
echo ($time2 - $time1) / 60; // 25
答案 4 :(得分:1)
预期输出不是25
。你从一天的晚些时候减去一天中的早期时间。上午11:56 - 上午12:21差不多24小时(或1440分钟)。
您的结果是1415
,这正是预期的结果。
答案 5 :(得分:0)
您可以保存$temp
的时间戳并使用日期功能
$time1 = timestamp;
$time2 = timestamp;
$temp = $time1 - $time2;
echo date("F j Y i:s",$temp);