如何打印一年中的所有周(或一年中的第一个星期一)

发布于 2024-08-18 07:10:20 字数 161 浏览 8 评论 0原文

如何打印从星期一开始到星期日结束的所有周..如下所示..使用 Zend_date

1   04-Jan-2010-10-Jan-2010  
2   11-Jan-2010-17-Jan-2010 
3   18-Jan-2010-24-Jan-2010 

How print all the weeks which start with monday and end with sunday.. like below ..using Zend_date

1   04-Jan-2010-10-Jan-2010  
2   11-Jan-2010-17-Jan-2010 
3   18-Jan-2010-24-Jan-2010 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

渔村楼浪 2024-08-25 07:10:20

首先找到第一个星期一,然后您可以添加 1 周,直到年份递增。

<?php
define('NL', "\n");

$year           = 2010;
$firstDayOfYear = mktime(0, 0, 0, 1, 1, $year);
$nextMonday     = strtotime('monday', $firstDayOfYear);
$nextSunday     = strtotime('sunday', $nextMonday);

while (date('Y', $nextMonday) == $year) {
    echo date('c', $nextMonday), '-', date('c', $nextSunday), NL;

    $nextMonday = strtotime('+1 week', $nextMonday);
    $nextSunday = strtotime('+1 week', $nextSunday);
}

Start by finding the first monday, then you can just add 1 week until the year increments.

<?php
define('NL', "\n");

$year           = 2010;
$firstDayOfYear = mktime(0, 0, 0, 1, 1, $year);
$nextMonday     = strtotime('monday', $firstDayOfYear);
$nextSunday     = strtotime('sunday', $nextMonday);

while (date('Y', $nextMonday) == $year) {
    echo date('c', $nextMonday), '-', date('c', $nextSunday), NL;

    $nextMonday = strtotime('+1 week', $nextMonday);
    $nextSunday = strtotime('+1 week', $nextSunday);
}
青衫负雪 2024-08-25 07:10:20

获取一年中的第一个星期一:

$year = 2010;

$date = new Zend_Date();
$date->set("01.01.$year", Zend_Date::DATES);

while(true)
{
   if($date->equals('Mon', Zend_Date::MONTH_NAME_SHORT))
   {
      //It's monday - print date
      break;
   }
   else
   {
       //It's not monday - move to the next day
       $date->add('1', Zend_Date::DAY_SHORT);
   }

}

Getting first monday of the year:

$year = 2010;

$date = new Zend_Date();
$date->set("01.01.$year", Zend_Date::DATES);

while(true)
{
   if($date->equals('Mon', Zend_Date::MONTH_NAME_SHORT))
   {
      //It's monday - print date
      break;
   }
   else
   {
       //It's not monday - move to the next day
       $date->add('1', Zend_Date::DAY_SHORT);
   }

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文