我有一个从1到7的天值,其中1是星期一,7是星期日。
我需要获取下周适当日期的strtoTime值。
例如:今天是11月13日星期二。
我的day值是"2“,所以strtotime应该返回11月20日星期二的相应值。我的day值是"1“,所以strtotime应该返回11月19日星期一的相应值。我的day值是"5“,因此strtotime应该返回11月23日星期五的相应值。
我希望只需要几个内置的PHP函数(strtotime(+1week+something))就可以做到这一点。如果没有,我将尝试编写一些比较检查!
谢谢!
发布于 2012-11-14 03:31:50
function dayNextWeek($num) {
return date('Y-m-d', strtotime("+1 week +" . ($num - date('w')) . "days"));
}并进行测试:
foreach (range(1, 7) as $i) {
echo $i . ' ' . dayNextWeek($i) . "\n";
}输出
1 2012-11-19
2 2012-11-20
3 2012-11-21
4 2012-11-22
5 2012-11-23
6 2012-11-24
7 2012-11-25发布于 2012-11-14 03:19:54
未经过广泛测试的:
$givenDayNumber = 1; // Your value here
$date = new DateTime(); // Today (reference point)
$currentDayOfWeek = date('N'); // This is 1 = Monday, see php date manual for more options
$diff = $givenDayNumber- $currentDayOfWeek; // Difference between given number and todays number
$date->modify('+ '.$diff.' day'); // Subtract difference
$date->modify('+ 1 week'); // Add a week
echo $date->format('d/m/Y'); // Output这里有小提琴的代码:http://codepad.org/7SylbJOX
发布于 2012-11-14 03:23:44
function getNext($dow)
{
$now = intval(date('N'));
$toAdd = $dow - $now;
if($toAdd<=0)
{
$toAdd += 7;
}
return date('r', strtotime('+'.$toAdd.'day'));
}https://stackoverflow.com/questions/13367103
复制相似问题