【问题标题】:Datetime Difference Error日期时间差异错误
【发布时间】:2013-03-10 13:11:51
【问题描述】:

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

这是php代码

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

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

【问题讨论】:

  • 尝试将 DateTiem 中的时区设置为 'UTC'
  • 上面写着 2: codepad.viper-7.com/wa4xVo 所以我想你的设置不正常或其他什么。

标签: php datetime diff


【解决方案1】:

是的,你需要指定时区

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

$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;

【讨论】:

    【解决方案2】:

    试试这个,

    $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 以获取更多信息。

    希望对您有所帮助。

    【讨论】:

    • @RichardYbias 很高兴为您提供帮助。
    【解决方案3】:

    确保设置 format()

     <?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...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      • 2022-11-16
      相关资源
      最近更新 更多