如何计算出某个时间段内有多少个星期一?

verysoso 2011-04-24 03:16:23
如题,PHP如何计算出某个时间段内有多少个星期一?
...全文
434 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ImN1 2011-04-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 t5500 的回复:]

引用 3 楼 snmr_com 的回复:

引用 2 楼 t5500 的回复:

PHP code
$tmp = $d1 = strtotime('2011-01-01');
$d2 = strtotime('2011-04-24');
$counter = 0;
while($tmp <= $d2) {
if (date('w',$tmp) == 1) $counter ++……
[/Quote]

呵呵

$counter = date('W',$d2)-date('W',$d1);

不过跨年还是要用累加……
乌镇程序员 2011-04-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 snmr_com 的回复:]

引用 2 楼 t5500 的回复:

PHP code
$tmp = $d1 = strtotime('2011-01-01');
$d2 = strtotime('2011-04-24');
$counter = 0;
while($tmp <= $d2) {
if (date('w',$tmp) == 1) $counter ++;
$tmp += 24 * 60 * 60;……
[/Quote]
我觉得这种简单算术运算就不用去考虑性能了,计算机天生就适合干这种简单重复劳动。。呵呵
ImN1 2011-04-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 t5500 的回复:]

PHP code
$tmp = $d1 = strtotime('2011-01-01');
$d2 = strtotime('2011-04-24');
$counter = 0;
while($tmp <= $d2) {
if (date('w',$tmp) == 1) $counter ++;
$tmp += 24 * 60 * 60;
}
echo date('Y-m-d'……
[/Quote]

干嘛用循环啊?
乌镇程序员 2011-04-24
  • 打赏
  • 举报
回复
$tmp = $d1 = strtotime('2011-01-01');
$d2 = strtotime('2011-04-24');
$counter = 0;
while($tmp <= $d2) {
if (date('w',$tmp) == 1) $counter ++;
$tmp += 24 * 60 * 60;
}
echo date('Y-m-d',$d1).'-'.date('Y-m-d',$d2)."期间共有{$counter}个星期一\n";
ImN1 2011-04-24
  • 打赏
  • 举报
回复
date()

w 星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六)
W ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的) 例如:42(当年的第 42 周)

计算前后W的差值,再计算超出部分(对7求余数)是否有星期一

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧