【问题标题】:how to find the beginning of any week in php? [duplicate]如何在php中找到任何一周的开始? [复制]
【发布时间】:2012-09-20 16:58:32
【问题描述】:

可能重复:
Get first day of week in PHP?

我有这个脚本可以告诉我本周的开始和结束:

$begweek = (date('l') == 'Monday')?date('Y-m-d'):date('Y-m-d',strtotime('last monday'));
echo $begweek;

echo "<br>";
$endweek = (date('l') == 'Sunday')?date('Y-m-d'):date('Y-m-d',strtotime('Sunday'));
echo $endweek;

如果我通过一个随机日期,例如$date="2011-11-15",我需要一种方法来找到任何一周的开始和结束;

关于我需要在当前脚本中修改哪些内容以适应此变量的想法?

谢谢

【问题讨论】:

标签: php date


【解决方案1】:

日期函数接受第二个参数。

代码

function blah($date){

    $begweek = (date('l', strtotime($date)) == 'Monday')?date('Y-m-d', strtotime($date)):date('Y-m-d',strtotime('last monday', strtotime($date)));
    echo $begweek;

    echo "<br>";
    $endweek = (date('l', strtotime($date)) == 'Sunday')?date('Y-m-d', strtotime($date)):date('Y-m-d',strtotime('Sunday', strtotime($date)));
    echo $endweek;

}

blah("2011-11-15");

输出

2011-11-14
2011-11-20

【讨论】:

    【解决方案2】:

    date 接受第二个参数,它是获取日期的时间戳

    使用strtotime 获取时间戳。

    date( 'l', strtotime( $date ) );
    

    【讨论】:

      【解决方案3】:

      使用'last monday',但只需传递strtotime() 随机日期的时间戳作为第二个参数。

      【讨论】:

      • "last monday" 当 $date 是星期一时将返回 $date 之前的星期一
      猜你喜欢
      • 2016-06-11
      • 1970-01-01
      • 2020-11-17
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      • 1970-01-01
      相关资源
      最近更新 更多