球球了,复制别人的代码一定要做单元测试!!!跑了大半年的代码,2024年12月30日凌晨崩了!!!心态都炸了!!!
代码参考链接:https://www.php.cn/faq/502532.html
有bug啊 有bug啊
下面为执行正常示例和异常示例
<?php
$firstDayThisMonth = date('2024-11-01');
$firstWeekThisMonth = date('W', strtotime($firstDayThisMonth));
$currentWeek = date('W', strtotime('2024-11-30')) - (int)$firstWeekThisMonth + 1;
echo $currentWeek;
// 执行结果 5
<?php
$firstDayThisMonth = date('2024-12-01');
$firstWeekThisMonth = date('W', strtotime($firstDayThisMonth));
$currentWeek = date('W', strtotime('2024-12-30')) - (int)$firstWeekThisMonth + 1;
echo $currentWeek;
// 执行结果 -46
过了12月30的0点以后,直接崩了。。。 复制代码引发的bug,还不如自己写的日期计算
更离谱的是 文心一言 ai 回答 ,2024年12月1日竟然回答是周六?可现实是周日啊。。。
真是离谱啊。。。
看下 Claude 的回答
建议代码 示例1
<?php
function getWeekOfMonth($date = null) {
$dt = $date ? new DateTime($date) : new DateTime();
// 获取当月1号的日期对象
$firstDayOfMonth = new DateTime($dt->format('Y-m-01'));
// 计算第一天的偏移量
$offset = $firstDayOfMonth->format('w');
// 计算当前日期在本月的天数
$dayOfMonth = $dt->format('j');
return ceil(($dayOfMonth + $offset) / 7);
}
// 使用示例
echo getWeekOfMonth(); // 输出今天是本月第几周
建议代码 示例2
<?php
function getWeekOfMonth($date = null) {
$date = $date ?: date('Y-m-d');
// 获取当前日期是当月第几天
$dayOfMonth = date('j', strtotime($date));
// 获取当月1号是星期几(0是星期天,1-6是星期一到星期六)
$firstDayOfMonth = date('w', strtotime(date('Y-m-01', strtotime($date))));
// 计算第几周
$weekOfMonth = ceil(($dayOfMonth + $firstDayOfMonth) / 7);
return $weekOfMonth;
}
// 使用示例
echo getWeekOfMonth(); // 输出今天是本月第几周
来源链接:https://www.cnblogs.com/anniu1122/p/18650644
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END
暂无评论内容