【问题标题】:Get date from monday depending on week number [closed]根据周数从星期一获取日期[关闭]
【发布时间】:2023-03-24 09:58:02
【问题描述】:

根据今年的周数,我无法弄清楚从星期一获取日期的代码。

有人可以帮我处理这段代码吗?

谢谢。

【问题讨论】:

  • 明确您的需求。显示一些你已经尝试过的代码。
  • 您能否编辑问题并明确您想要达到的目标?还请包括尝试的代码和预期的输出。

标签: php date numbers week-number


【解决方案1】:

这将提供今年某一周的星期一:

$thisYear = date('Y');
$weekNum = 40;

$date = date('Y-m-d', strtotime("$thisYear-W$weekNum-1"));  // Outputs 2013-09-30

【讨论】:

  • 是的,我比我更喜欢这个。每次看到 strtotime 使用新方式时,它的灵活性都让我惊叹。
  • 我不记得我在哪里找到它了,但在尝试比较今年周一至周日周与去年同一周一至周日周的信息时,它会派上用场。跨度>
  • 如果您使用此代码,请注意周数,它必须是两位数;如果周数低于 10,则始终添加 0。
【解决方案2】:

使用DateTime 类:

$dt = new DateTime;
$dt->setISODate($year, $week);
echo $dt->format('Y-m-d');

demo

【讨论】:

    【解决方案3】:

    我有这个(我不确定我或其他人是否是原作者)但试一试:

      $week = 34; //Enter your week here.
    
      $week = mktime( 0, 0, 0, 1, 1,  2013 ) + ( $week * 7 * 24 * 60 * 60 ); 
    
      $monday = $week - 86400 * ( date( 'N', $week ) - 1 );
      $monday = date( 'Y-m-d', $monday );
    
      echo $monday;
    

    【讨论】:

    • 这不起作用,week=40 返回2013-10-07,但应该是2013-09-30
    猜你喜欢
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多