Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 给出奇数结果的strotime_Php_Strtotime - Fatal编程技术网

Php 给出奇数结果的strotime

Php 给出奇数结果的strotime,php,strtotime,Php,Strtotime,好吧,我希望有人能看到我的错误 $date = "2015-02-4"; $schedule = strtotime('+1 month',$date); 出于某种原因,这是给我2680415作为结果,而不是1425488400,我想要的,但如果我这样做 $date = "2015-02-4"; $schedule = strtotime($date); 我得到了正确答案,即1422982800 $date实际上并不是这样分配的,它是添加到当前月份和年份的DB查询的结果。在调用strotim

好吧,我希望有人能看到我的错误

$date = "2015-02-4";
$schedule = strtotime('+1 month',$date);
出于某种原因,这是给我2680415作为结果,而不是1425488400,我想要的,但如果我这样做

$date = "2015-02-4";
$schedule = strtotime($date);
我得到了正确答案,即1422982800


$date实际上并不是这样分配的,它是添加到当前月份和年份的DB查询的结果。

在调用
strotime
时,您应该将
+1个月
表达式附加到
$date
中,而不是将它们作为单独的参数传递

date_default_timezone_set('Asia/Bangkok');

$date     = "2015-02-4";
$schedule = strtotime($date);
echo "Original timestamp:  ", $schedule, PHP_EOL;
echo "Original date:       ", date("Y-m-d", $schedule), PHP_EOL;

$schedule = strtotime($date . ' +1 MONTH');
echo "+ 1 month timestamp: ", $schedule, PHP_EOL;
echo "+ 1 month date:      ", date("Y-m-d", $schedule), PHP_EOL;
输出:

Original timestamp:  1422982800
Original date:       2015-02-04
+ 1 month timestamp: 1425402000
+ 1 month date:      2015-03-04

如前所述,
strotime
接受
int
作为第二个参数。因此,在处理之前,应将字符串转换为时间戳:

$date = "2015-02-4";
$schedule = strtotime('+1 month', strtotime($date));
或者使用连接,如@mhall的答案所示。

查找-您看到第二个参数了吗?第二个参数是
int$now
。整数<代码>2015-02-4不是整数
strotime($date.+1个月)
效果更好。