每月php,PHP获取每月的星期数

太多的“单行”-所需的变量,以避免与条件重新计算。在我参加会议时扔了一个默认参数。

function weekOfMonth($when = null) {

if ($when === null) $when = time();

$week = date('W', $when); // note that ISO weeks start on Monday

$firstWeekOfMonth = date('W', strtotime(date('Y-m-01', $when)));

return 1 + ($week < $firstWeekOfMonth ? $week : $week - $firstWeekOfMonth);

}

请注意weekOfMonth(strtotime('Oct 31, 2011'));将会返回6; 与OP的预期相反,一些罕见的月份有6周的时间。自从ISO周从星期一开始以来,2017年1月又是6个ISO周的月份-星期日是去年的第一个星期。

对于starshine531,要返回0该月的索引周,请将更改return 1 +为return 0 +或return (int)。

对于Justin Stayton,从星期日开始而不是星期一开始的几周,我将使用strftime('%U'代替date('W',如下所示:

function weekOfMonth($when = null) {

if ($when === null) $when = time();

$week = strftime('%U', $when); // weeks start on Sunday

$firstWeekOfMonth = strftime('%U', strtotime(date('Y-m-01', $when)));

return 1 + ($week < $firstWeekOfMonth ? $week : $week - $firstWeekOfMonth);

}

对于此版本,2017-04-30现在在四月的第六周,而2017-01-31现在在第五周。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值