2

当我使用日期时间的差异时,我遇到了问题。

这是php代码

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

正确的结果应该是 2。但不幸的是它的结果6015。即使我更改日期,它仍然是6015。各位有遇到这个问题吗?我试图从其他计算机运行脚本,但它可以工作。

4

3 回答 3

2

是的,你需要指定时区

试试这个代码我为印度设置的

$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;
于 2013-03-21T06:23:11.663 回答
1

尝试这个,

$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://stackoverflow.com/a/14938421/718224以获取更多信息。

这可以帮助你。

于 2013-03-21T06:21:34.163 回答
0

确保设置格式()

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

看这里...

于 2013-03-21T06:20:40.700 回答