重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
?php
10年积累的网站设计、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有霸州免费网站建设让你可以放心的选择与我们合作。
$time = time();
/**
* 计算上一个月的今天,如果上个月没有今天,则返回上一个月的最后一天
* @param type $time
* @return type
*
*/
function last_month_today($time){
$last_month_time = mktime(date("G", $time), date("i", $time),
date("s", $time), date("n", $time), 0, date("Y", $time));
$last_month_t = date("t", $last_month_time); //二月份的天数
if ($last_month_t date("j", $time)) {
return date("Y-m-t H:i:s", $last_month_time);
}
return date(date("Y-m", $last_month_time) . "-d", $time);
}
echo last_month_today($time);
如果一个月固定30天,那真的很好办,直接当前 时间戳-30*86400 就是上一月今天的时间戳了,加减一次86400就是加减一天。
如果今天几号要对应上一月几号,我就提一些注意点吧,当前月份减1和加1当然就是上一个月和下一个月,不过注意要12月和1月的判断,还有如果今天3月30号,上一个月也没30号,这些还要看你自己想怎么处理。只要拿到正确的日期,传入mktime就拿到时间了,至于昨天和明天,一样加减一次86400就行了。
没有,可以取当前月的第一天00:00的时间戳,然后减24小时,再date即是上个月的最后一天。
如:
$prev_month_last_day = date("Y/m/d", strtotime(date("Y-m-1")) - 86400);
list($year, $month, $day) = explode("/", $prev_month_last_day);
$prev_month_first_day = $year . '/' . $month . '/1';
printf("first day of prev month is : %s\nlast day of prev month is : %s\n", $prev_month_first_day, $prev_month_last_day);