第一次我在PHP中将日期转换为周数(01到53),现在我不知道如何将周数转换为一周的first_date



这里有一个简单的代码日期到一年week_number和现在。我怎样才能获得start_date和end_date week_number

$date_string = "2012-12-30";
echo "Weeknummer: " . date("W", strtotime($date_string));

有很多方法可以做到这一点,这里有一种。
我使用日期的"N"来确定所选日期是哪一天,并使用 strtotimes 理解简单文本的方式来查找上一个或下一个星期一/星期日。

$date_string = "2018-01-27";
$w =date("W", strtotime($date_string));
$N =date("N", strtotime($date_string));
If($N == 1){ // if monday
    $monday = $date_string;
    $sunday = date("Y-m-d", strtotime("next Sunday $date_string"));
}Elseif($N ==7){ // if sunday
    $monday = date("Y-m-d", strtotime("previous Monday $date_string"));
    $sunday = $date_string;
}Else{// any other weekday
    $monday = date("Y-m-d", strtotime("previous Monday $date_string"));
    $sunday = date("Y-m-d", strtotime("next Sunday $date_string"));
}

echo "Weeknummer: $w.nMonday: $monday.nSunday: $sunday.";

输出:

周数:52。
星期一: 2012-12-24.
星期日: 2012-12-30.

https://3v4l.org/UDoqF

你可以使用这个:

<?php
    $date_string = "2012-12-30";
    $weekNumber = date("W", strtotime($date_string));
    echo "Weeknummer: ".$weekNumber;
    echo '</br>';
    // get the year
    $year = date("Y", strtotime($date_string));
    // set the date string for the week number
    $dateWeek = $year.'-W'.$weekNumber;
    // increase the weekNumber to the next
    $weekNumber = intval($weekNumber);
    $weekNumber += 1;
    // if it is lower than 10 add preceeding 0
    if($weekNumber < 10) $weekNumber = '0'.$weekNumber;
    // set the date string for the next week number
    $dateWeekNext = $year.'-W'.$weekNumber;
    echo '</br>';
    // get the first day of the week
    echo date('Y-m-d', strtotime($dateWeek));
    echo '</br>';
    // get the day before the first day of the next week
    echo date('Y-m-d', strtotime($dateWeekNext . ' -1 day'));
?>

这输出:

Weeknummer: 52
2012-12-24
2012-12-30

最新更新