我希望根据所有月份的给定日期获取日期。
例如: - 银行账单generate.i尝试使用DateTime
和modify
,但我怎么也无法得到我的结果。现在它得到了这样的结果
输入2017-1-31
结果
2017-2-28
2017-3-28
但我想得到
2017-2-28
2017-3-31
像那样。
我怎样才能实现这个。任何人都可以帮助我。
答案 0 :(得分:2)
您可以尝试date
喜欢 -
echo date('Y-m-t', strtotime("+1 MONTH", strtotime("2017-1-31")));
t
返回该月的天数。在你的情况下,它需要一些操作。它应该像 -
$date = "2017-1-31";
$day = date('d', strtotime($date));
if(in_array($day, array(29, 30, 31))) { // last days of month
// Adding 1 month to 31st Jan would produce date of March. So extracting month and year then the date
$month = date('Y-m', strtotime("+5 DAY", strtotime($date)));
echo $month . '-' . date('t', strtotime($month));
} else {
echo date('Y-m-d', strtotime("+1 MONTH", strtotime($date)));
}