PHP日期让我很沮丧

我正在尝试mm/yyyy通过往返字符串来验证格式的输入。问题:

<?php
$datestr = "06/2017";

$realdate = DateTime::createFromFormat('m/Y', $datestr);
$datestr2 = date_format($realdate,'m/Y');

echo "date in: $datestrn";
echo "date out: $datestr2n";
?>

产生以下结果:

日期:06/2017
日期:07/2017

为什么第二个值每月递增?

回答

因为您没有指定它假定的今天(31 日)的日期。没有 6 月 31 日,所以 PHP 假定为 7 月 1 日。

假设您始终使用您在示例中使用的日期格式,您可以通过为您的日期指定月份的第一天来轻松解决此问题:

$datestr = "01/06/2017";

$realdate = DateTime::createFromFormat('d/m/Y', $datestr);
$datestr2 = date_format($realdate,'m/Y');

echo "date in: $datestrn";
echo "date out: $datestr2n";

演示


以上是PHP日期让我很沮丧的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>