php获取本周的起始时间和结束时间的时间戳

已邀请:
匿名用户

匿名用户

赞同来自:

  由于计算机默认把周日定为一周的第一天,而我们的习惯是周一为一周的第一天,所以在php中取一周的第一天是很需要技巧的。比如我们使用“strtotime("monday")”获取时,在同一周的“周一”和“周二到周三”获取到的结果是不同的。(爱E族)为了解决此问题,可以使用下面方法:
<?php
date_default_timezone_set('PRC');
//计算基准日,以此日期计算当周的开始时间和结束时间、以及时间戳
$date = '2016-11-06';
//向前取最近一个周日的下一天,(aiezu.com)也就是取周一,这里不能使用monday直接取周一
$start = strtotime("last sunday next day", strtotime($date));
//向后取下周一的前一秒,(爱E族)也就是本周日的最后一秒
$end = strtotime("next monday", $start) - 1;

echo "当周的开始时间戳和结束时间戳:\n";
echo sprintf("时间戳:%s -> %s\n\n", $start, $end);

echo "当周的开始时间和结束时间:\n";
echo sprintf("%s -> %s", date("Y-m-d H:i:s",$start), date("Y-m-d H:i:s", $end));
运行结果:
当周的开始时间戳和结束时间戳:
时间戳:1477843200 -> 1478447999

当周的开始时间和结束时间:
2016-10-31 00:00:00 -> 2016-11-06 23:59:59

要回复问题请先登录注册