php中时间函数date及常用的时间计算


Posted in PHP onMay 12, 2017

曾在项目中需要使用到今天,昨天,本周,本月,本季度,今年,上周上月,上季度等等时间戳,趁最近时间比较充足,因此计划对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

Y

4位数字表示的年份

y

2位数字表示的年份

a

小写的上午或者下午的值

A

大写的上午或者下午的值

g

12小时制,没有前导0

G

24小时制,没有前导0

h

12小时制,有前导0

H

24小时制,有前导0

i

具有前导0的分钟数

s

秒数,具有前导0

u

毫秒,date()函数返回的是000000格式的

e

时区标识

I

是否为夏令时,是为1,不是为0

T

本机所在的时区

c

2017-05-08T 15:22:21+00:00 格式的时间

U

从1970开始至今的秒数

idate()函数详解

与date的区别是此函数只可以传递一个参数,date()可以传递多个参数

B

Internet time

d

月份中的第几天

h

12小时制的时间

H

24小时制的时间

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 相关文章推荐
第八节 访问方式 [8]
Oct 09 PHP
PHP 获取远程文件内容的函数代码
Mar 24 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
Jun 03 PHP
探讨:parse url解析URL,返回其组成部分
Jun 14 PHP
php基于curl扩展制作跨平台的restfule 接口
May 11 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
Sep 30 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
Oct 28 PHP
Zend Framework常用校验器详解
Dec 09 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
Mar 02 PHP
使用PHP访问RabbitMQ消息队列的方法示例
Jun 06 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
phpMyAdmin通过密码漏洞留后门文件
Nov 20 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
May 11 #PHP
PHP 实现浏览记录并按日期分组
May 11 #PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 #PHP
使用WAMP搭建PHP本地开发环境
May 10 #PHP
thinkPHP5 tablib标签库自定义方法详解
May 10 #PHP
PHP实现获取第一个中文首字母并进行排序的方法
May 09 #PHP
php7 安装yar 生成docker镜像
May 09 #PHP
You might like
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
js 页面元素的几个用法总结
2013/11/18 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
阿里巴巴技术文章分享 Javascript继承机制的实现
2016/01/14 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
轻松学习JavaScript函数中的 Rest 参数
2019/05/30 Javascript
Node.js API详解之 assert模块用法实例分析
2020/05/26 Javascript
python正则表达式的使用
2017/06/12 Python
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
python3 深浅copy对比详解
2019/08/12 Python
Python递归调用实现数字累加的代码
2020/02/25 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
python except异常处理之后不退出,解决异常继续执行的实现
2020/04/25 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
2020/11/25 Python
CSS的background属性及CSS3的背景图片设置总结
2016/06/13 HTML / CSS
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
大学生入党思想汇报
2014/01/01 职场文书
社会实践感言
2014/01/25 职场文书
活动志愿者自荐信
2014/01/27 职场文书
素质拓展感言
2014/01/29 职场文书
国际贸易求职信
2014/07/05 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书
JavaScript数组 几个常用方法总结
2021/11/11 Javascript
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android
解决spring.thymeleaf.cache=false不起作用的问题
2022/06/10 Java/Android