首页 > php代码 > PHP获取本周第一天和最后一天

PHP获取本周第一天和最后一天

用PHP获取本周第一天和最后一天,网上有很多方法,但是太麻烦,或者有bug,这是用php自带的DateTime类实现的方法,比较简单:

<?php
//本周的第一天和最后一天
$date = new DateTime();
$date->modify('this week');
$first_day_of_week = $date->format('Y-m-d');
$date->modify('this week +6 days');
$end_day_of_week = $date->format('Y-m-d');
?>

经过测试modity不知道是用做什么了,于时找了另两个例子

<?php
//这个星期的星期一
// @$timestamp ,某个星期的某一个时间戳,默认为当前时间
// @is_return_timestamp ,是否返回时间戳,否则返回时间格式
function this_monday($timestamp = 0, $is_return_timestamp = true) {
    static $cache;
    $id = $timestamp . $is_return_timestamp;
    if (!isset($cache[$id])) {
        if (!$timestamp) $timestamp = time();
        $monday_date = date('Y-m-d', $timestamp - 86400 * date('w', $timestamp) + (date('w', $timestamp) > 0 ? 86400 : - /*6*86400*/
        518400));
        if ($is_return_timestamp) {
            $cache[$id] = strtotime($monday_date);
        } else {
            $cache[$id] = $monday_date;
        }
    }
    return $cache[$id];
}
//这个星期的星期天
// @$timestamp ,某个星期的某一个时间戳,默认为当前时间
// @is_return_timestamp ,是否返回时间戳,否则返回时间格式
function this_sunday($timestamp = 0, $is_return_timestamp = true) {
    static $cache;
    $id = $timestamp . $is_return_timestamp;
    if (!isset($cache[$id])) {
        if (!$timestamp) $timestamp = time();
        $sunday = this_monday($timestamp) + /*6*86400*/
        518400;
        if ($is_return_timestamp) {
            $cache[$id] = $sunday;
        } else {
            $cache[$id] = date('Y-m-d', $sunday);
        }
    }
    return $cache[$id];
}
?>


本文地址:http://www.phprm.com/code/58103.html

转载随意,但请附上文章地址:-)

标签:strtotime

相关文章

发表留言