有没有一种快速计算PHP日期差的方法?例如:
$date1 = '2009-11-12 12:09:08';
$date2 = '2009-12-01 08:20:11';
然后进行一个计算,$date2 减去 $date1
我查阅了 php.net 的文档,但没有找到解决方案。是否有一种快速的方法可以执行此操作?
我建议使用 date->diff 函数,如下面的示例:
$dStart = new DateTime('2012-07-26');
$dEnd = new DateTime('2012-08-26');
$dDiff = $dStart->diff($dEnd);
echo $dDiff->format('%r%a'); // use for point out relation: smaller/greater
$diffInDays = (int)$dDiff->format("%r%a");
来获取可直接使用的值,如"-2"或"2"(有关格式参数说明,请参见http://www.php.net/manual/en/dateinterval.format.php)。 - fludate()
函数放作DateTime构造函数的第一个参数?调用date('2012-07-26')
函数会返回2012-07-26
,所以我真的看不出来调用那个函数的意义。 - Glavićstrtotime函数将你的日期字符串转换成Unix时间戳(自Unix纪元以来的秒数)。
$ts1 = strtotime($date1);
$ts2 = strtotime($date2);
$seconds_diff = $ts2 - $ts1;
以下代码将通过计算两个日期之间的差异来输出天数。
$str = "Jul 02 2013";
$str = strtotime(date("M d Y ")) - (strtotime($str));
echo floor($str/3600/24);
JQuery datepicker
的日期差异时,floor
给了我奇怪的结果。例如,floor((strtotime(((isset($_POST['date']) and strtotime($_POST['date'])) ? $_POST['date'] : date("Y-m-d"))) - strtotime(date("Y-m-d")))/3600/24))
在3月31日和3月21日之间给出了9.9583333333333的差异(所以我期望得到10,但实际上是向下取整的9)。我使用了round
函数来解决这个问题。 - Jonathan Parent Lévesque