首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日期数值+1周的strtotime PHP

日期数值+1周的strtotime PHP
EN

Stack Overflow用户
提问于 2012-11-14 03:08:42
回答 5查看 8.9K关注 0票数 0

我有一个从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))就可以做到这一点。如果没有,我将尝试编写一些比较检查!

谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-11-14 03:31:50

代码语言:javascript
复制
function dayNextWeek($num) {
  return date('Y-m-d', strtotime("+1 week +" . ($num - date('w'))  . "days"));
}

并进行测试:

代码语言:javascript
复制
foreach (range(1, 7) as $i) {
  echo $i . ' ' . dayNextWeek($i) . "\n";
}

输出

代码语言:javascript
复制
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
票数 2
EN

Stack Overflow用户

发布于 2012-11-14 03:19:54

未经过广泛测试的:

代码语言:javascript
复制
$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

票数 0
EN

Stack Overflow用户

发布于 2012-11-14 03:23:44

代码语言:javascript
复制
function getNext($dow)
{
    $now = intval(date('N'));

    $toAdd = $dow - $now;
    if($toAdd<=0)
    {
        $toAdd += 7;
    }

    return date('r', strtotime('+'.$toAdd.'day'));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13367103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档