我需要从当前月份开始上个月。尝试下面的代码,它适用于有30天的月份,但在31天的特定月份不起作用。 March, May, July, October and December
注意:问题可能会重复,但请完整阅读直至结束。您可以通过更改系统并测试下面的代码来检查相同的问题。我需要格式为Jul
对于日期:30-Jul
输出
Previous Month-Jun
Current Month-Jul
对于日期:31-Jul
输出
Previous Month-Jul
Current Month-Jul
$prev_month = date('M', strtotime("last month"));
echo 'Previous Month--'.$prev_month;
echo 'Current Month--'.date('M');
还尝试echo date('M', strtotime("-1 Months"));
但输出与上面相同。
如果当前月份为(August)
且31
天,那么前一个月为(July)
且31
天,那么它会正常工作并显示正确的上个月即July
,但如果当前月份有31
天且上个月有30
天或更短的天数,则无效。
我应该如何在当前月份的基础上获取正确的上个月?
答案 0 :(得分:1)
你只需尝试
echo "Previous Month".date('M',strtotime('first day of last month'));
并且对于特定日期,您只需使用
即可echo date('M',strtotime('first day of last month',strtotime('30-Jun')));//May
答案 1 :(得分:0)
您应该从月初开始传递日期。
$startDate = date('Y-m-1');
$prevMonth = date('M', strtotime("last month", strtotime($startDate)));