【问题标题】:How to get the next two saturdays from a specific date [closed]如何从特定日期获得接下来的两个星期六[关闭]
【发布时间】:2013-06-22 14:40:39
【问题描述】:

我搜索了很多,但没有找到解决方案。

这是我的代码:

Post="2/28/2013"; 
$timestamp = strtotime($_POST['date']);
$datum = date("Y-m-d H:i:s", $timestamp);

我想在一个日期(由用户命名)之后的接下来的两个星期六为客户提供两个辅助日期。我把日期在 mySQL 中查找,看看日期是否可用。

这给出了从今天开始的下一个星期六,但它没有帮助:

$nextSaturday= date("M d Y", strtotime('+1 Saturday'));

【问题讨论】:

  • strtotime() 采用第二个参数“$now”。
  • -4 反对票!!我害怕再次提问;)
  • 任何提示为什么它被否决?还是因为阴雨天气?

标签: php


【解决方案1】:

最好的方法是使用 PHP DateTime 类:

$date = new DateTime($_POST['date']);
$date->modify('next Saturday');

echo $date->format('M d Y');

【讨论】:

  • @hamburger 不,它是相对于 DateTime 对象的。
【解决方案2】:
$time = time();
$saturdaysCount = 2;
$saturdays = [];
for ($i = 0; $i < $saturdaysCount; $i++){
    $time = strtotime("next Saturday", $time);
    $saturdays[] = date('Y.m.d', $time);
}

var_dump($saturdays);

【讨论】:

    【解决方案3】:

    DateTime 课程绝对是要走的路:-

    $date = \DateTime::createFromFormat("d-m-Y", $_POST['date']);
    $int = new \DateInterval('P1W');
    $date->modify('next saturday');
    $firstSat = $date->format('d-m-Y');
    $date->add($int);
    $secondSat = $date->format('d-m-Y');
    

    【讨论】:

    • 抱歉出错:调用未定义的方法 DateTime::createFromForm
    • 您的 PHP 版本没有 DateTime::createFromFormat()。如果可以的话,我建议更新。否则你可能对这个问题感兴趣,也可能不感兴趣stackoverflow.com/q/17076627/212940
    【解决方案4】:
    $nextSaturday= date("M d Y", strtotime($datum.' next saturday'));
    $nextSaturday2= date("M d Y", strtotime($nextSaturday.'+ 1 week'));
    

    http://php.net/manual/en/function.strtotime.php

    【讨论】:

    • 不工作:没有结果
    • @hamburger 如果你把它放在你的代码下面,它应该在下周六返回
    • 你说得对。它就像一个魅力。我不知道为什么它被否决了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    • 2016-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    相关资源
    最近更新 更多