有没有一种快速的方法来计算日期差异在PHP?例如:php日期差异?
$date1 = '2009-11-12 12:09:08';
$date2 = '2009-12-01 08:20:11';
然后做一个计算,$ DATE2减去DATE1 $
我读php.net文档,但没有运气。有没有快速的方法来做到这一点?
有没有一种快速的方法来计算日期差异在PHP?例如:php日期差异?
$date1 = '2009-11-12 12:09:08';
$date2 = '2009-12-01 08:20:11';
然后做一个计算,$ DATE2减去DATE1 $
我读php.net文档,但没有运气。有没有快速的方法来做到这一点?
strtotime会将您的日期字符串转换为unix时间戳。 。自Unix纪元(秒
$ts1 = strtotime($date1);
$ts2 = strtotime($date2);
$seconds_diff = $ts2 - $ts1;
请注意,如果两个日期之间存在时间变化(如春季或秋季),这可能会给你不同的结果。 试试这个: echo strtotime('2013-03-30 21:00') - strtotime('2013-03-29 21:00'); echo strtotime('2013-03-31 21:00') - strtotime('2013-03-30 21:00'); 你得到86400和82800. 结果其实是正确的。但如果用86400除以得到需要考虑的天数(所以最好使用日期差异函数)。 – memical 2013-03-29 11:07:10
如果您使用的是现代版本的php,请使用adam的解决方案。 PHP有很多代码来解决与时间有关的异常情况。 – txyoji 2014-09-22 19:12:24
我建议使用日期 - > DIFF功能,如实施例中所示:
$dStart = new DateTime('2012-07-26');
$dEnd = new DateTime('2012-08-26');
$dDiff = $dStart->diff($dEnd);
echo $dDiff->format('%R'); // use for point out relation: smaller/greater
echo $dDiff->days;
下面代码将给出通过在两个日期之间取出差异 ..
$str = "Jul 02 2013";
$str = strtotime(date("M d Y ")) - (strtotime($str));
echo floor($str/3600/24);
当试图计算我的'JQuery datepicker'的日期差异时,'floor'给了我奇怪的结果。例如,'floor((stsetup(())和strtotime($ _ POST ['date']))?$ _POST ['date']:date(“Ymd”))) - strtotime(date(“Ymd”)))/ 3600/24)'给我在3月31日和3月21日之间的9.9583333333333的差异(所以当我期待10时,9倒数)。我用'round'函数来解决问题。 – 2016-03-21 18:44:37
是乔纳森, 你是对的。 – 2016-09-13 08:07:58
@kiamlaluno - 这不是一个确切的*重复,因为它是一个更复杂的问题(该问题中的OP要格式化为“x年,y月,z天”等)。 – 2009-12-21 14:32:01
我想在“天”:) – mysqllearner 2009-12-21 14:39:26