【问题标题】:PHP date range problemsPHP日期范围问题
【发布时间】:2010-12-14 22:31:42
【问题描述】:

今天我的日期范围有一个相当奇怪的问题。

$oBeginDate = newDateTime('last wednesday');
$oEndDate = newDateTime('next tuesday');
echo $oBeginDate->format('d/m/Y') . ' to ' . $oEndDate->format('d/m/Y');

这通常应该显示 14/12/2010 到 21/12/2010,但今天,14/12/2010,它显示的是 08/12/2010 到 21/12/2010。

关于如何解决此问题的任何建议?

我希望自动将日期从 08/12/2010 更新到 14/12/2010 以保持一周的范围。

【问题讨论】:

标签: php mysql


【解决方案1】:

使用文字“上周三”或“下周二”返回相对于当前日期时间的日期。

如果您尝试获取从今天开始的范围,则 DateTime 构造函数的默认参数是 'now' 并将返回当前日期时间。

此外,必须明确声明未来或过去的“固定”日期。

如果您想获取这一天的本周日期,只需明确传递名称即可。

    $startd = new DateTime('wednesday'); 

   $end_date = date_add($startd,date_interval_create_from_date_string('1 week'));
   echo $startd->format('d/m/Y').' to '.$endd->format('d/m/Y');

要每天更新范围而不参考星期几,请使用“现在”而不是“星期三”。

【讨论】:

  • 日期需要自动更新以保持一周的范围
【解决方案2】:

上周三是 8 号。不知道为什么你会期待 14 号,也就是星期二。

【讨论】:

    【解决方案3】:

    今天,12 月 14 日,是星期二。所以上周三确实是 12 月 8 日。

    【讨论】:

    • 需要保持一周的范围
    • 你要求上周三。 php 正确回答你。你到底想要什么?当您要求上一个星期三时,我看不到任何方法可以得到 2010 年 14 月 12 日(星期二)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多