在php中转换日期会根据日期格式返回不同的结果

时间:2013-09-23 23:14:50

标签: php datetime

似乎是一个相当标准的日期转换,给了我不寻常的结果。我想将$ pay_date变为'j / d / Y'格式,但如果格式为'Y-m-d',则只能得到正确的日期。

这是我的代码:

$payment = '2014-09-09';
$pay_date = strtotime("+1 month", strtotime($payment) );                    
$converter = date('j/d/Y', $pay_date );

echo $converter;

结果:9/09/2014(应该是10/09/2014)

如果我保留这些变量,但将$ converter更改为以下格式:

$converter = date('Y-m-d', $pay_date );

结果是正确的 - 2014-10-09

我也试过这个:

$convert2 = DateTime::createFromFormat('Y-m-d', $pay_date)->format('j/d/Y');
echo $convert2;

结果:9/09/2014

但:

$convert2 = DateTime::createFromFormat('Y-m-d', $pay_date)->format('Y-m-d');
echo $convert2;

给我正确的结果:2014-10-09

1 个答案:

答案 0 :(得分:1)

jd是相同的格式选项,它们都代表DAY;来自manual for PHP's date function

d  Day of the month, 2 digits with leading zeros  01 to 31
j  Day of the month without leading zeros         1 to 31

使用格式'm/d/Y'