今天在写统计每周发帖情况的代码时,突然发觉在php语言里提供了那么多日期函数,但是真正要获得某个日期所在周的第一天和最后一天,还有点麻烦呢,上网搜索了一下,解决方案还真不多,不管怎么样,还是找了一个,稍微改装了一下,代码如下:
 function getFirstDateOfWeek($dateStr){
  $w = strftime("%u",strtotime($dateStr));
  $sdate = strftime("%Y-%m-%d",strtotime($dateStr) - ($w-1)*86400) . " 00:00:00";
  return $sdate;
 }
 function getLastDateOfWeek($dateStr){
  $w= strftime("%u",strtotime($dateStr));
  $edate = strftime("%Y-%m-%d",strtotime($date_time) + (7-$w)*86400) . " 23:59:59";
  return $edate;
 }
提供2个函数,通过传入指定日期,获取指定日期所在自然周的第一天和最后一天。
strftime函数对timestamp进行格式输出, 其中%u - 星期几的十进制数表达 [1,7],1 表示星期一,先通过strftime取得传入的指定日期在自然周中是第几天,然后再加上或减去一周中剩余的天数的总秒数即可。