gpt4 book ai didi

php - 在 PHP 中获取给定一周的开始和结束天数

转载 作者:IT王子 更新时间:2023-10-29 01:12:35 25 4
gpt4 key购买 nike

我正在尝试使用星期日作为开始日期和引用日期(例如 $date)来获取周范围,但我似乎无法弄清楚。

例如,如果 $date 为 2009-05-01,我将得到 2009-04-26 和 2009-05-02。 2009-05-10 将产生 2009-05-10 和 2009-05-16。我当前的代码如下所示(我不记得我是从哪里提取它的,因为我忘记在评论中写下 url):

function x_week_range(&$start_date, &$end_date, $date)
{
$start_date = '';
$end_date = '';
$week = date('W', strtotime($date));
$week = $week;

$start_date = $date;

$i = 0;
while(date('W', strtotime("-$i day")) >= $week) {
$start_date = date('Y-m-d', strtotime("-$i day"));
$i++;
}

list($yr, $mo, $da) = explode('-', $start_date);

$end_date = date('Y-m-d', mktime(0, 0, 0, $mo, $da + 6, $yr));
}

我意识到它所做的只是将当前日期增加 7 天。你会怎么做?

最佳答案

我会利用 PHP 的 strtotime真棒:

function x_week_range(&$start_date, &$end_date, $date) {
$ts = strtotime($date);
$start = (date('w', $ts) == 0) ? $ts : strtotime('last sunday', $ts);
$start_date = date('Y-m-d', $start);
$end_date = date('Y-m-d', strtotime('next saturday', $start));
}

对您提供的数据进行了测试并且有效。不过,我不是特别喜欢你正在进行的整个引用工作。如果这是我的功能,我会像这样:

function x_week_range($date) {
$ts = strtotime($date);
$start = (date('w', $ts) == 0) ? $ts : strtotime('last sunday', $ts);
return array(date('Y-m-d', $start),
date('Y-m-d', strtotime('next saturday', $start)));
}

然后这样调用它:

list($start_date, $end_date) = x_week_range('2009-05-10');

我不太喜欢为这样的事情做数学。日期很棘手,我更喜欢用 PHP 来解决。

关于php - 在 PHP 中获取给定一周的开始和结束天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/923925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com