如何确定一周中的某一天是一月中的第一,第二,第三等发生?

时间:2017-02-20 15:01:16

标签: php date datetime

我需要确定给定日期的星期几,以及在给定日期的某个月中某一天的出现次数。

2017年1月的第3个星期日是第15个星期日。我通过查看日历来了解这一点。但鉴于我只知道确切的日期,我怎样才能以编程方式弄明白它的第3个星期天?

通过将日期加载到PHP并将其格式化为输出日来确定实际的星期几是非常容易的:

$day_of_week = date('l', $timestamp);

这是我无法理解的另一部分。

2 个答案:

答案 0 :(得分:2)

尝试使用当前日,或者您可以将任何其他有效时间戳设置为$ timestamp:

<?php
date_default_timezone_set('UTC');
$timestamp = time();
$day_of_week = date('l', $timestamp);
$day_of_the_month = date('j', $timestamp);
$occurence = ceil($day_of_the_month / 7);
$suffix = 'th';

if($occurence == 3){
  $suffix = 'rd';
} else if($occurence == 2){
  $suffix = 'nd';
} else if($occurence == 1){
  $suffix = 'st';
}

print 'It is the '.$occurence.$suffix.' '.$day_of_week.' of this month';
?>

答案 1 :(得分:0)

我认为没有比循环整整一个月更好的方法,并计算它们是星期天。我还建议你使用像Carbon(Carbon oficial docs

这样的库

所以,你的代码应该这样做:

  1. 您收集日期
  2. &#13;
    &#13;
    $dt = Carbon::createFromDate(2012, 10, 6);
    &#13;
    &#13;
    &#13;

    1. Carbon date对象有一个名为&#34; dayOfWeek&#34;的属性,所以不再麻烦
    2. &#13;
      &#13;
      if ($dt->dayOfWeek === Carbon::SATURDAY) {
          
      }
      &#13;
      &#13;
      &#13;

      1. @CBroe其实更好。你只需将你的周数除以7(无小数),然后在结果中加1,即发生这种情况。
      2. PD:抱歉,我没有PHP编辑器也没有访问我的开发PC