php日期处理相关

2014年08月06日

获取某段时间内间隔月份

/**
 * 获取两个时间戳之间的间隔月份
 *
 * @param string $start 开始时间戳
 * @param string $end 结束时间戳
 * @return array
 */
public function monthList($start, $end) {
    $start = date('Y-m', $start);  //起始月份
    $end = date('Y-m', $end); //结束月份
    $start = strtotime($start . '-01'); //1号
    $end = strtotime($end . '-01'); //1号
    $i = 0;
    $d = array();
    while ($start <= $end) {
        $d[$i] = trim(date('Y-m', $start), ' ');
        $start += strtotime('+1 month', $start) - $start; //注意strtotime在此处及②处用法的不同
        $i++;
    }
    return $d;
}

获取指定日期所在星期的第一天及最后一天

/**
 * @param string $day 日期
 *
 * @return array
 */
public function getdays($day) {
    $lastday=date('Y-m-d',strtotime("$day Sunday"));
    $firstday=date('Y-m-d',strtotime("$lastday -6 days")); //②注意$lastday是时间不是时间戳
    return array($firstday,$lastday);
}

获取指定日期所在月的第一天及最后一天

/**
 * 获取指定日期所在月的第一天及最后一天
 * 
 * @param string $day 日期
 * @return array
 */
public function getdays($day) {
    $firstday = date('Y-m-01',strtotime($day));
    $lastday = date('Y-m-d',strtotime("$firstday +1 month -1 day"));
    return array($firstday,$lastday);
}

php时间函数相关

date(format,timestamp) //格式化一个本地时间/日期 注意第二个参数是时间戳
strtotime(time,now) //将任何英文文本的日期时间描述解析为Unix时间戳(常用于加减月份及天数等)
time() //返回当前时间的 Unix 时间戳