php中使用mktime() 如何获取上一月昨天的时间,今天的时间,明天的时间;

php中使用mktime() 如何获取上一月昨天的时间,今天的时间,明天的时间;,第1张

如果一个月固定30天,那真的很好办,直接当前 时间戳-3086400 就是上一月今天的时间戳了,加减一次86400就是加减一天。
如果今天几号要对应上一月几号,我就提一些注意点吧,当前月份减1和加1当然就是上一个月和下一个月,不过注意要12月和1月的判断,还有如果今天3月30号,上一个月也没30号,这些还要看你自己想怎么处理。只要拿到正确的日期,传入mktime就拿到时间了,至于昨天和明天,一样加减一次86400就行了。

思路是先求两个时间的秒数差,然后将结果转换即可:

echo calcTime('2018-08-20', '2018-08-30');
function calcTime($fromTime, $toTime){
    
    //转时间戳
    $fromTime = strtotime($fromTime);
    $toTime = strtotime($toTime);
    //计算时间差
    $newTime = $toTime - $fromTime;
    return round($newTime / 86400)  '天'  
    round($newTime % 86400 / 3600)  '小时'  
    round($newTime % 86400 % 3600 / 60)  '分钟';
    
}

在左右按钮上加上点击事件函数 change_preDay()和change_nextDay(),然后在函数里边获取名为today 的input的值 $("input[name='today']"),点击左右按钮的时候触发对应的函数,然后函数里处理日期,对应加一天或者减一天,然后把得到的值重新复制给新的URL,这个URL应该是当前页面带日期参数的地址。不知道这样说能不能明白,希望能解决你的问题

$currentDate
=
date("U");
//是替换成从一个起始时间(好象是1970年1月1日)以来的秒数
date("l",
$currentDate)
//这句貌似只起到一个作用,就是显示date("l")也就是星期几。加上$currentDate没什么效果!
date("l",
$currentDate)
!=
"Monday";
//整句的意思是,当前日期不等于Monday时

自己理了一下思路,因为我做的时候sql语句里用的是小于和大于,所以直接统计到下一天的0点。最后返回的是数组。
//开始时间
$startDate = "2013-12-12";
//结束时间
$endDate = "2013-12-16";
//跨越天数
$n = (strtotime($endDate)-strtotime($startDate))/86400;
//结束时间加一天(sql语句里用的是小于和大于,如果有等于的话这句可以不要)
$endDate = date("Y-m-d 00:00:00",strtotime("$endDate +1 day"));
//判断,跨度小于7天,可能是同一周,也可能是两周
if($n<7){
//查开始时间 在 那周 的 位置
$day = date("w",strtotime($startDate))-1;
//查开始时间 那周 的 周一
$week_start = date("Y-m-d 00:00:00",strtotime("$startDate -{$day} day"));
//查开始时间 那周 的 周末
$day = 7-$day;
$week_end = date("Y-m-d 00:00:00",strtotime("$startDate +{$day} day"));
//判断周末时间是否大于时间段的结束时间,如果大于,那就是时间段在同一周,否则时间段跨两周
if($week_end>=$endDate){
$weekList[] =array($startDate,$endDate);
}else{
$weekList[] =array($startDate,$week_end);
$weekList[] =array($week_end,$endDate);
}
}else{
//如果跨度大于等于7天,可能是刚好1周或跨2周或跨N周,先找出开始时间 在 那周 的 位置和那周的周末时间
$day = date("w",strtotime($startDate))-1;
$week_start = date("Y-m-d 00:00:00",strtotime("$startDate -{$day} day"));
$day = 7-$day;
$week_end = date("Y-m-d 00:00:00",strtotime("$startDate +{$day} day"));
//先把开始时间那周写入数组
$weekList[] =array($startDate,$week_end);
//判断周末是否大于等于结束时间,不管大于(2周)还是等于(1周),结束时间都是时间段的结束时间。
if($week_end >= $endDate){
$weekList[] = array($week_end,$endDate);
}else{
//N周的情况用while循环一下,然后写入数组
while($week_end <= $endDate){
$start = $week_end;
$week_end = date("Y-m-d 00:00:00",strtotime("$week_end +7 day"));
if($week_end <= $endDate){
$weekList[] = array($start,$week_end);
}else{
$weekList[] = array($start,$endDate);
}itjob
}
}
}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13384080.html

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

发表评论

登录后才能评论

评论列表(0条)

保存