我想获得给定日期+2个月的第一个日期,Iam使用以下函数来获取此信息。
$date = '2015-12-31';
echo $date = date('1-m-Y', strtotime('+2 month', strtotime($date)));
这个工作正常。但是12月30日,这并没有按预期给出结果。对于日期2015-12-30
,它给出结果'1-03-2016'
。我知道因为2月有29天这给出了这个结果。但预期结果为'01-02-2016'
。这可以通过编写新函数来解决。但我想使用内置函数。请帮助。
答案 0 :(得分:1)
按照您的方式,将您的日期转换为所需月份的第1天,然后计算。像这样:
<?php
$date = '2015-12-31';
$date = date('1-m-Y', strtotime($date));
echo $date = date('1-m-Y', strtotime('+2 months',strtotime($date)));
你得到:
2016年1月2日
相反,您可以使用first day of +2 months
:
echo $date = date('d-m-Y', strtotime('first day of +2 months',strtotime($date)));
将输出(如您所愿):
2016年1月2日
答案 1 :(得分:1)
NOTE :
date('Y-m-d', strtotime('first day of +2 month', strtotime($date)));
地图2015-12-30至2015-12-01,然后first day of
将其映射到2016-02-01。通过映射到您的开始日期的第一天,在增加+2个月之前,您不必担心短时间。