如何使用PHP计算上一个月的今天

如何使用PHP计算上一个月的今天,第1张

<?php 

    $time = time()  

      

    /** 

     * 计算上一个月的今天,如果上个月没有今天,则返回上一个月的最后一天 

     * @param type $time 

     * @return type

     * http://www.jbxue.com

     */       

    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)

由于php内置时间函数 strtotime 在求上个月这个功能上存在bug,所以放弃不用了……

上个自己写的临时用的,楼主看看:

$thismonth = date('m')

$thisyear = date('Y')

if($thismonth==1) {

$lastmonth = 12

$lastyear = $thisyear-1

} else {

$lastmonth = $thismonth - 1

$lastyear = $thisyear

}

$lastStartDay = $lastyear.'-'.$lastmonth.'-1'

$lastEndDay = $lastyear.'-'.$lastmonth.'-'.date('t',strtotime($lastStartDay))

echo 'lastStartDay = '.$lastStartDay

echo '<br/>'

echo 'lastEndDay = '.$lastEndDay

你好,获取当前时间戳:time() ,如果你没设置时区 ,那么当前时间时间戳是:time()+3600*8 ,我们假设你的时区设置正确,那么time()+3600*24*30 就是一个月,一周就是time()+3600*24*7 (3600是一小时的秒数X24小时 就是一天X30/7)就是30天或者7天了。希望能帮到你,望采纳!


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/808494.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-29
下一篇2023-08-29

发表评论

登录后才能评论

评论列表(0条)

    保存