时间类 修改thinkphp5,自己增加了一些
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 刘志淳 <chun@engineer.com>
// +----------------------------------------------------------------------
namespace thinkhelper;
class Time
{
/**
* 返回今日开始和结束的时间戳
*
* @return array
*/
public static function today()
{
return [
mktime(0, 0, 0, date("m"), date("d"), date("Y")),
mktime(23, 59, 59, date("m"), date("d"), date("Y"))
];
}
/**
* 返回昨日开始和结束的时间戳
*
* @return array
*/
public static function yesterday()
{
$yesterday = date("d") - 1;
return [
mktime(0, 0, 0, date("m"), $yesterday, date("Y")),
mktime(23, 59, 59, date("m"), $yesterday, date("Y"))
];
}
/**
* 返回某一天开始和结束的时间戳
*$day 时间戳类型
* @return array
*/
public static function oneDay($day = false)
{
if (!$day)
$day = time();
return self::onePeriod($day, $day);
}
/**
* 返回一段时间的开始和结束时间戳
* @param $start
* @param $end
* @return array
*/
public static function onePeriod($start, $end)
{
if (!$start) {
$start = time();
}
if (!$end) {
$end = time();
}
return [
mktime(0, 0, 0, date("m", $start), date("d", $start), date("Y", $start)),
mktime(23, 59, 59, date("m", $end), date("d", $end), date("Y", $end))
];
}
/**
* 返回本周开始和结束的时间戳
*
* @return array
*/
public static function week()
{
$timestamp = time();
return [
strtotime(date("Y-m-d", strtotime("+0 week Monday", $timestamp))),
strtotime(date("Y-m-d", strtotime("+0 week Sunday", $timestamp))) + 24 * 3600 - 1
];
}
/**
* 返回上周开始和结束的时间戳
*
* @return array
*/
public static function lastWeek()
{
$timestamp = time();
return [
strtotime(date("Y-m-d", strtotime("last week Monday", $timestamp))),
strtotime(date("Y-m-d", strtotime("last week Sunday", $timestamp))) + 24 * 3600 - 1
];
}
/**
* 返回本月开始和结束的时间戳
*
* @return array
*/
public static function month($everyDay = false)
{
return [
mktime(0, 0, 0, date("m"), 1, date("Y")),
mktime(23, 59, 59, date("m"), date("t"), date("Y"))
];
}
/**
* @param int $year
* @param int $month
* @return array
* @from 554665488@qq.com
* @author:yfl
* @time: 2018年2月8日 15:07:49
* @describe:返回某一年某一月的开始和结束的时间戳
*/
public static function yearMonth($year = 2018, $month = 1)
{
return [
$begin = mktime(0, 0, 0, $month, 1, $year),
$end = mktime(23, 59, 59, $month, date("t",$begin), $year)
];
}
// 返回当前季度的开始时间和结束时间
public static function quarter($month = 0)
{
$season = $month != 0 ? $month : ceil(date("n") / 3);
return [
mktime(0, 0, 0, ($season - 1) * 3 + 1, 1, date("Y")),
mktime(0, 0, 0, $season * 3, 1, date("Y"))
];
}
/**
* 返回上个月开始和结束的时间戳
*
* @return array
*/
public static function lastMonth()
{
$begin = mktime(0, 0, 0, date("m") - 1, 1, date("Y"));
$end = mktime(23, 59, 59, date("m") - 1, date("t", $begin), date("Y"));
return [$begin, $end];
}
/**
* 返回今年开始和结束的时间戳
*
* @return array
*/
public static function year()
{
return [
mktime(0, 0, 0, 1, 1, date("Y")),
mktime(23, 59, 59, 12, 31, date("Y"))
];
}
/**
* @param $year
* @return array
* @from 554665488@qq.com
* @author:yfl
* @time: 2018年2月9日 17:30:49
* @describe: 返回莫一年的开始和结束的时间戳
*/
public static function choseYear($year)
{
return [
mktime(0, 0, 0, 1, 1, $year),
mktime(23, 59, 59, 12, 31, $year)
];
}
/**
* 返回去年开始和结束的时间戳
*
* @return array
*/
public static function lastYear()
{
$year = date("Y") - 1;
return [
mktime(0, 0, 0, 1, 1, $year),
mktime(23, 59, 59, 12, 31, $year)
];
}
/**
*
* 获取某一年的开始和结束的时间戳
* @param null $year
* @return array|bool
*/
public static function getYear($year = null)
{
if (!$year) {
return false;
}
return [
mktime(0, 0, 0, 1, 1, $year),
mktime(23, 59, 59, 12, 31, $year)
];
}
public static function dayOf()
{
}
/**
* 获取几天前零点到现在/昨日结束的时间戳
*
* @param int $day 天数
* @param bool $now 返回现在或者昨天结束时间戳
* @return array
*/
public static function dayToNow($day = 1, $now = true)
{
$end = time();
if (!$now) {
list($foo, $end) = self::yesterday();
}
return [
mktime(0, 0, 0, date("m"), date("d") - $day, date("Y")),
$end
];
}
/**
* 返回几天前的时间戳
*
* @param int $day
* @return int
*/
public static function daysAgo($day = 1)
{
$nowTime = time();
return $nowTime - self::daysToSecond($day);
}
/**
* 返回几天后的时间戳
*
* @param int $day
* @return int
*/
public static function daysAfter($day = 1)
{
$nowTime = time();
return $nowTime + self::daysToSecond($day);
}
/**
* 天数转换成秒数
*
* @param int $day
* @return int
*/
public static function daysToSecond($day = 1)
{
return $day * 86400;
}
/**
* 周数转换成秒数
*
* @param int $week
* @return int
*/
public static function weekToSecond($week = 1)
{
return self::daysToSecond() * 7 * $week;
}
private static function startTimeToEndTime()
{
}
/**
* 获取一个时间段内的新年起点终点时间戳
* @param array $timeArr
*/
public static function getYearTimestamp($timeArr = [])
{
if (!$timeArr) {
return false;
}
$start_time = $timeArr[0];
$end_time = $timeArr[1];
$start_year = date("Y", $start_time);
$end_year = date("Y", $end_time);
$data = [];
if ($start_year == $end_year) {
$data = [self::getYear($start_year)];
} else {
$change = ($end_year - $start_year) + 1;
for ($i = 1; $i <= $change; $i++) {
$data[] = self::getYear($start_year + ($i - 1));
}
}
return $data;
}
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
