本篇文章主要介绍了php中时间函数date及常用的时间计算的相关知识,具有很好的参考价值。下面跟着小编一起来看下吧
曾在项目中需要使用到今天,昨天,本周,本月,本季度,今年,上周上月,上季度等等时间戳,趁最近时间比较充足,因此计划对php的相关时间知识点进行总结学习
1,阅读php手册date函数
常用时间函数:
checkdate()验证一个时间是否正确
date_default_timezone_get()取得当前脚本所使用的时区
date_default_timezone_set()设定脚本所用时区 ini_set()也可以满足,或者修改配置文件
date_sunrise() date_sunset() 返回给定的日期和地点的日出时间和日落时间
date()格式化一个日期,下边会有详细内容
getdate() 取得日期时间的相关信息
gettimeofday()取得当前时间的相关信息
idate()将本地时间日期格式化为整数,但只接受一个字符作为参数
microtime()返回当前的时间戳和秒数
mktime()取得一个日期的时间戳
strtotime()将英文文本的日期秒数解析为时间戳
2,重要函数详解
date()格式化一个日期
string date( string $format [, int $timestamp] )
d月份中的第几天,也就是几号,此为具有前导零,例如01,02
d星期中的第几天,也就是英文星期几的单词缩写,mon到sun
l(l小写) 星期几,此为完整的英文格式, sunday到saturday
n用数字表示星期几,1为星期一,7为星期日
s每月天数后面的英文后缀
w星期中的第几天,使用数字表示,0为星期天,6为星期六
z年份中的第几天 0到365
w年份中的第几周
f月份,完整的英文单词
m月份数字格式,具有前导0
m三个字母表示的缩写的月份
n数字表示的月份,没有前导0
t给定月份所应有的天数
l检测是否为闰年,闰年为1,月份为0
y4位数字表示的年份
y2位数字表示的年份
a小写的上午或者下午的值
a大写的上午或者下午的值
g12小时制,没有前导0
g24小时制,没有前导0
h12小时制,有前导0
h24小时制,有前导0
i具有前导0的分钟数
s秒数,具有前导0
u毫秒,date()函数返回的是000000格式的
e时区标识
i是否为夏令时,是为1,不是为0
t本机所在的时区
c2017-05-08t 15:22:21+00:00 格式的时间
u从1970开始至今的秒数
idate()函数详解
与date的区别是此函数只可以传递一个参数,date()可以传递多个参数
binternet time
d月份中的第几天
h12小时制的时间
h24小时制的时间
i分钟
i若启用夏令时返回1,否则为0
l如果是闰年则返回1,否则返回0
m月份的数字
s秒数
t本月的总天数
u从1970起的秒数
w星期中的第几天
w年份中的第几个星期,星期从星期一开始
y年份,1或者2位数字
y年份4位数字
z年份中的第几天
z以秒为单位的时区偏移量
strtotime()函数衔接
用法示例
strtotime ("now");
strtotime ("10 september 2017");
strtotime ("+1 day");
strtotime ("+1 week");
strtotime ("+1 week 2 days 4 hours 2 seconds");
strtotime ("next thursday");
strtotime ("last monday");
3,常用时间汇总
$times = [];
function maketime(){
//获取今日开始时间戳和结束时间戳
$begintoday=mktime(0,0,0,date('m'),date('d'),date('y'));
$endtoday=mktime(0,0,0,date('m'),date('d')+1,date('y'))-1;
$times['today']['begin'] = $begintoday;
$times['today']['end'] = $endtoday;
//获取昨日起始时间戳和结束时间戳
$beginyesterday=mktime(0,0,0,date('m'),date('d')-1,date('y'));
$endyesterday=mktime(0,0,0,date('m'),date('d'),date('y'))-1;
$times['yesterday']['begin'] = $beginyesterday;
$times['yesterday']['end'] = $endyesterday;
//获取上周起始时间戳和结束时间戳
$beginlastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('y'));
$endlastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('y'));
$times['lastweek']['begin'] = $beginlastweek;
$times['lastweek']['end'] = $endlastweek;
//获取本月起始时间戳和结束时间戳
$beginthismonth=mktime(0,0,0,date('m'),1,date('y'));
$endthismonth=mktime(23,59,59,date('m'),date('t'),date('y'));
$times['thismonth']['begin'] = $beginthismonth;
$times['thismonth']['end'] = $endthismonth;
//获取本周开始时间和结束时间,此例中开始时间为周一
$defaultdate = date('y-m-d');
$first = 1;
$w = date('w',strtotime($defaultdate));
$beginweek = strtotime("$defaultdate-" . ($w?$w-$first:6) . 'days');
$endweek = $beginweek + 6*24*3600-1;
$times['thisweek']['begin'] = $beginweek;
$times['thisweek']['end'] = $endweek;
//获取上月的起始时间戳和结束时间戳
$beginlastmonth=mktime(0,0,0,date('m')-1,1,date('y'));
$endlastmonth=mktime(23,59,59,date('m')-1,date('t'),date('y'));
$times['lastmonth']['begin'] = $beginlastmonth;
$times['lastmonth']['end'] = $endlastmonth;
//获取今年的起始时间和结束时间
$beginthisyear = mktime(0,0,0,1,1,date('y'));
$endthisyear = mktime(23,59,59,12,31,date('y'));
$times['thisyear']['begin'] = $beginthisyear;
$times['thisyear']['end'] = $endthisyear;
//获取上年的起始时间和结束时间
$beginlastyear = mktime(0,0,0,1,1,date('y')-1);
$endlastyear = mktime(23,59,59,12,31,date('y')-1);
$times['lastyear']['begin'] = $beginlastyear;
$times['lastyear']['end'] = $endlastyear;
//获取本季度开始时间和结束时间
$season = ceil((date('n'))/3);//当月是第几季度
$beginthisseason = mktime(0, 0, 0,$season*3-3+1,1,date('y'));
$endthisseason = mktime(23,59,59,$season*3,date('t',mktime(0, 0 , 0,$season*3,1,date("y"))),date('y'));
$times['thisseason']['begin'] = $beginthisseason;
$times['thisseason']['end'] = $endthisseason;
//获取上季度的起始时间和结束时间
$beginlastseason = mktime(0, 0, 0,($season-1)*3-3+1,1,date('y'));
$endlastseason = mktime(23,59,59,($season-1)*3,date('t',mktime(0, 0 , 0,$season*3,1,date("y"))),date('y'));
$times['lastseason']['begin'] = $beginlastseason;
$times['lastseason']['end'] = $endlastseason;
return $times;
}
$times = maketime();
目前是我之前用到的时间戳,后期还会积累汇总,避免重复造轮子。
相关推荐:php date函数介绍与使用方法详解
关于php mysql update语句的相关内容
php验证码类validatecode
以上就是php中时间函数date及常用的时间计算图文详解的详细内容。