Php 根据日期查找一周中的特定日期
我希望能够找到给定日期的“星期日”,格式为YYYY-MM-DDPhp 根据日期查找一周中的特定日期,php,Php,我希望能够找到给定日期的“星期日”,格式为YYYY-MM-DD 。。。在PHP中如何实现这一点?查看PHP函数。如果找不到实现这一点的库,那么: 提出一个参考日期(1970年1月1日?),你知道一周中的哪一天 计算参考日期和给定日期之间的天数 取模7的答案 转换为一周中的某一天 strotime()可能对您有所帮助,它接受GNU日期输入格式,如“next Sunday” 这里有一个完整的多值示例 它适用于PHP或任何其他使用纪元时间(或类似时间)的语言 我不明白这个问题。。。你的意思是你想在有
。。。在PHP中如何实现这一点?查看PHP函数。如果找不到实现这一点的库,那么:
“next Sunday”
这里有一个完整的多值示例
它适用于PHP或任何其他使用纪元时间(或类似时间)的语言
我不明白这个问题。。。你的意思是你想在有约会的时候找到“下一个”星期天吗?例如,如果我给你2011-07-04(今天),你想返回2011-07-10(下一个周日)?@JaredCobb:那是因为没有问题。对不起,我想在同一周内找出“周日”的日期。因此,如果日期是2011-07-04,它应该返回2011-07-03。使用星期几算法(2*(3-((Y div 100)mod 4))+(Y mod 100)+(Y div 4)+monthlookup[M]+D)mod 7=星期几,即0=星期天1=星期一,等等。您只需从天数中减去该数字,即可得到“上一个”星期天你会怎么做“当前星期天”?所以如果今天是星期天,它将返回今天的日期,或者如果是星期一,它将返回昨天的日期?这正是我最终要做的。非常感谢!本回音日期('l Y-m-d',标准时间('sunday',标准时间('2011-07-02 Z'))。“”;回音日期('l Y-m-d',strotime('sunday',strotime('2011-07-03 Z'))。“
”;回音日期('l Y-m-d',标准时间('sunday',标准时间('2011-07-04 Z'))。“
”;请记住:世界上有些人(例如我)习惯于认为一周从周一开始,所以对我来说,本周的周日是2011-07-10。这将“当前周日”视为“今天”,你可以写一个简短的例子;)你的链接没有回答这个问题。要找到startday,您需要更多。
echo date('Y-m-d',strtotime('sunday',strtotime("2011-07-04 Z")));
<?php
function prevSunday($paramDay){
$aDay = 24*60*60;
$aWeek = $aDay * 7;
$sunday = $aDay + $paramDay - (($paramDay - 3 * $aDay) % $aWeek);
return $sunday;
}
$randDay = 1309819423 + rand(0, 9000000); // this contanis a random day (and hours, minutes, seconds)
$aSaterday = strtotime("20110702");
$aSunday = strtotime("20110703");
$aMonday = strtotime("20110704");
echoTwoDays($aSuterday, prevSunday($aSuterday));
echoTwoDays($aSunday, prevSunday($aSunday));
echoTwoDays($aMonday, prevSunday($aMonday));
/* echoes
day1: Saturday 20110702
day2: Sunday 20110626
day1: Sunday 20110703
day2: Sunday 20110703
day1: Monday 20110704
day2: Sunday 20110703
*/
echoTwoDays($randDay, prevSunday($randDay)); // echoes a random date and perv sunday
function echoTwoDays ($day1, $day2) {
echo "day1: " . date("l Ymd", $day1) ."<br>"; // remove l as your request
echo "day2: " . date("l Ymd", $day2) ."<br><br>"; // remove l as your request
}
function prevSunday($paramDay){
$aDay = 24*60*60;
$aWeek = $aDay * 7;
$sunday = $aDay + $paramDay - (($paramDay - 3 * $aDay) % $aWeek);
return $sunday;
}
?>