日期时间差异错误

问题描述:

我在使用日期时间差异时遇到问题。日期时间差异错误

这里是PHP代码

$datetime1 = new DateTime('2009-10-11'); 
$datetime2 = new DateTime('2009-10-13'); 
$interval = $datetime1->diff($datetime2); 
echo $interval->days; 

正确的结果应该是2,但不幸的是它会导致6015。即使我改变日期,它仍然是6015。你们遇到这个问题吗?我试图从其他计算机运行脚本,但它的工作。

+0

尝试在DateTiem设置时区为“UTC” – alwaysLearn 2013-03-21 06:12:00

+0

这说'2':HTTP ://codepad.viper-7.com/wa4xVo所以我想你有一个重击或什么的设置。 – 2013-03-21 06:16:39

试试这个,

$start_date = new DateTime("2009-10-11"); 
$end_date = new DateTime("2009-10-13"); 
$interval = $start_date->diff($end_date); 
echo "Result " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days "; 

使用$interval->days$interval->d." days "

替代你可以检查我的答案https://*.com/a/14938421/718224上日期di请参阅更多信息。

这可以帮助你。

+1

这适用于我。谢谢 – 2013-03-21 06:36:53

+0

@RichardYbias很乐意帮助你。 – 2013-03-21 06:40:52

确保设置格式()

<?php 
    $datetime1 = date_create('2009-10-11'); 
    $datetime2 = date_create('2009-10-13'); 
    $interval = date_diff($datetime1, $datetime2); 
    echo $interval->format('%R%a days'); 
    ?> 

see here...

是肯定男人,你需要分配时区

试试这个代码 我将它设置为印度

$MNTTZ = new DateTimeZone('Asia/Kolkata'); 
$datetime1 = new DateTime('2009-10-11',$MNTTZ); 
$datetime2 = new DateTime('2009-10-13',$MNTTZ); 
$interval = $datetime1->diff($datetime2); 
echo $interval->days;