试图获取当月的前一个月的数量

时间:2011-04-20 16:34:03

标签: php date

我正在尝试获取本月之前的月份数(现在是04(4月),所以我正试图获得03)。我正在尝试这个:

date('m')-1;

但我得到3。但我想要的是获得03

8 个答案:

答案 0 :(得分:39)

这样做的正确方法是:

date('m', strtotime('-1 month'));

正如您将看到1月份发生的奇怪事情以及其他答案。

答案 1 :(得分:3)

当月份(当天)的日期大于上个月的最后一天时,当前接受的回复将导致错误的答案。

e.g。 3月29日(非闰年)执行date('m', strtotime('-1 month'));的结果将是03,因为29比2月的任何一天都大,因此strtotime('-1 month')实际上将返回3月1日。

相反,请使用以下内容:

date('n') - 1;

答案 2 :(得分:1)

您可能会感到惊讶,但date() function manual page有您需要的确切示例:

$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));

答案 3 :(得分:0)

计算结果是一个数字。如果要将其格式化为字符串,可以使用:

$result = date('m')-1;
$string_result = sprintf("%02s", $result);

修改:请注意,这只是格式化字符串数字的部分解决方案。

答案 4 :(得分:0)

intval(date('m'))

当月?

(intval(date('m'))-1)%12

上个月,也是12月/ 1月

答案 5 :(得分:0)

date('m', strtotime('last month'));

无论您是否在一月份,这都将起作用

答案 6 :(得分:-1)

这也有效。

printf("%02s", (date('m') - 1));

答案 7 :(得分:-2)

这应该为你做...

str_pad(date('m')-1,  2, '0', STR_PAD_LEFT);