【问题标题】:Script to find the 3rd Sunday in may [duplicate]找到五月第三个星期日的脚本[重复]
【发布时间】:2013-04-23 20:21:02
【问题描述】:

我正在寻找一个 PHP 例程来查找我们每年的家庭团聚日期,这样我就不必继续在日历上手动查找它并每年在网站上输入它。

日期是五月第三个星期日之前的星期六。

我进行了搜索,但没有找到有关如何找到指定月份中的第三个星期日的答案。我只发现了一些关于如何找到本月第一个太阳的东西。不同的问题。

【问题讨论】:

标签: php date


【解决方案1】:

您可以将strtotime()relative date format 一起使用。

【讨论】:

  • <?php echo date('d.m.Y', strtotime('third Sunday of May 2013'));19.05.2013.
  • 谢谢,这比我认为我使用两个答案的组合要容易。
【解决方案2】:

你可以使用内置的 php strtotime

<?php
$s = 'Monday, September 28, 2009';
$time = strtotime($s);
$start = strtotime('last sunday, 12pm', $time);
$end = strtotime('next saturday, 11:59am', $time);
$format = 'l, F j, Y g:i A';
$start_day = date($format, $start);
$end_day = date($format, $end);
header('Content-Type: text/plain');
echo "Input: $s\nOutput: $start_day - $end_day";
?>

所以实际上你可以使用 3 次“下周日”,而每次将 $time 更新为新的

【讨论】:

    【解决方案3】:

    我认为应该这样做:

    $time = strtotime('may 1 +3 sunday');
    

    [编辑] 哎呀,忘了回去一天:

    $time = strtotime('may 1 +3 sunday -1 day');
    

    [Edit2] 每年循环播放:

    for ($year = 2013; $year <= 2020; $year++) {
        echo date('r', strtotime("may $year +3 sunday -1 day")), "\n";
    }
    

    输出:

    Sat, 18 May 2013 00:00:00 -0400
    Sat, 17 May 2014 00:00:00 -0400
    Sat, 16 May 2015 00:00:00 -0400
    Sat, 14 May 2016 00:00:00 -0400
    Sat, 20 May 2017 00:00:00 -0400
    Sat, 19 May 2018 00:00:00 -0400
    Sat, 18 May 2019 00:00:00 -0400
    Sat, 16 May 2020 00:00:00 -0400
    

    【讨论】:

    • 谢谢,这比我想象的要容易。
    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2013-05-15
    • 2019-03-01
    相关资源
    最近更新 更多