如何使用strtotime输出正确的日期?

时间:2016-01-23 14:40:53

标签: php

我希望每次点击按钮时我的$ curdate都会增加2天。 但我总是得到输出“01-01-1970”

我总是得到那个输出。

这是我的代码:

$curdate = date('m-d-Y');
$mydate=getdate(strtotime($curdate));
switch($mydate['wday']){
    case 0: // sun
    case 1: // mon
        $days = 2;
        break;
    case 2:
        $days = 2;
        break;    
    case 3:
        $days = 2;
        break;
    case 4:
        $days = 3;
        break;
    case 5:
        $days = 4;
        break;
}
echo date('m-d-Y', strtotime("$curdate +$days days"));

我希望今天的输出日期加上2天。

是的,有人可以帮我吗? 感谢

2 个答案:

答案 0 :(得分:0)

$curdate = date('m-d-Y');会给出一个格式为-分隔符的日期,以及前一天的日期。

根据PHP's documented rules strtotime()会将-分隔符的日期识别为英国/欧洲格式的日期,因此01-15-2016之类的日期将无效

修改

$curDate = new DateTime();
echo $curDate->add(new DateInterval('P2D'))->format('m-d-Y');

CURDATE $

答案 1 :(得分:0)

strtotime的第一个参数是文本字符串,从现在开始有一些日期更改(没有第二个参数),例如:

echo date('m-d-Y', strtotime("+6 days"));    // add six days to now date

因此,您不需要在其中使用$cur_date变量:

echo date('m-d-Y', strtotime("+$days days"));