【问题标题】:get the date of Monday of the week having the year and the week number of the year获取具有年份和年份周数的星期几的日期
【发布时间】:2020-02-06 03:51:09
【问题描述】:

如何获得具有年份和年份周数的每周星期一的日期?

例如,如果年份是 2020,一年中的周数是 01,则预期结果是 2019-12-30

【问题讨论】:

  • 到目前为止你尝试过什么?看起来你有足够的声誉知道这是如何工作的:)
  • 您需要指定您使用的星期编号系统...
  • 我不知道该怎么做。现在我正在调查,特别是我正在阅读php.net/manual/en/datetime.formats.php
  • 我想我得到了解决方案,date('Y-m-d', strtotime("{$year}-W{$week}-1")); 如果年份是 2020 年,杂草是 01,结果是 2019-12-30
  • @user615274 如果您在 cmets 上面发布的内容解决了您的问题,那么您可以发布自己的答案,而不是在 cmets 中。一旦它允许你就可以接受它。

标签: php date


【解决方案1】:

希望这就是你要找的:)

<?php

$week_number = '06';
$year_number = '2020';

function getStartAndEndDate($week, $year) {
  $date = new DateTime();
  $date->setISODate($year, $week);
  for ($i=0; $i < 7; $i++) {
    $array[$i] = $date->format('Y-m-d');
    $date->modify('+1 days');
  }
  return $array;
}

$week_array = getStartAndEndDate($week_number,$year_number);

echo $week_array[0]; // 0 = monday, 1 = tuesday, and so on :)

?>

【讨论】:

    【解决方案2】:
    <?php
    $week = 1;
    $year = 2020;
    
    $dateTime = date_create(sprintf("%04dW%02d",$year,$week)); //always a monday
    
    echo $dateTime->format('Y-m-d');  //2019-12-30
    

    【讨论】:

    • 这应该被标记为重复,而不是作为答案添加。
    猜你喜欢
    • 1970-01-01
    • 2021-12-16
    • 2012-05-09
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多