php麻烦添加1个月到var日期

时间:2018-03-09 12:52:21

标签: php date

在尝试使用论坛上提供的众多方法的数据库中向变量添加1个月时出现问题:

$row["pchargedate"] returns 2018-03-01

$newduedate = date('Y-m-d', strtotime('+1 month', $row["pchargedate"])) ;
-returns 0000-00-00

$newduedate = date('Y-m-d', strtotime('+1 month', $row["pchargedate"])) ; }
$newduedate = date ( 'Y-m-d' , $newduedate );
- returns 1970-01-01

$duedate = DateTime::createFromFormat('Y-m-d', $row["pchargedate"]);
$duedate = $duedate->format('d-m-Y');

if ($row["pchargedate"] == '1' ) { $newduedate = strtotime ( '+1 month' , strtotime ( $pchargedate ) ) ; }
$newduedate = date ( 'Y-m-d' , $newduedate );
- $duedate returns 01-03-2018 but $newduedate is 1970-01-01

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

strtotime - 将任何英文文本日期时间描述解析为Unix时间戳

Syntex

int strtotime ( string $time [, int $now = time() ] )

这个怎么样?

<?php

$row = "2018-03-01";
echo date('Y-m-d', strtotime($row. ' + 1 month'));
//Outputs 2018-04-01

你正在使用的syntex是

$newduedate = date('Y-m-d', strtotime('+1 month', $row["pchargedate"])) ;

哪个错了。所以它将按默认日期输出

请阅读Documentation