[TOC]
# UNIX时间戳
自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数 .
相关函数:
* `time( )`: 函数返回一个当前系统的时间戳
* `mktime( )`: 取得一个日期的 Unix 时间戳
```
格式:int mktime(时[,分[,秒[,月[,日[,年[,is_dst区]]]]]]);
```
> 注意:is_dst参数表示是否为夏时制,PHP5.10后此参数已废除。
* `strtotime( )`:将任何英文文本的日期时间描述解析为 Unix 时间戳
```
格式:int strtotime ( string $time [, int $now ] )
```
实例:
```
<?php
echo date("Y-m-d", strtotime("now")); //输出: 2012-04-05
echo date("Y-m-d", strtotime("8 may 2012")); //输出: 2012-05-08
echo date("Y-m-d", strtotime("+1 day")); //输出: 2012-04-06
echo date("Y-m-d", strtotime("last monday")); //输出: 2012-04-02
$now = strtotime("now"); //当前时间
$endtime = strtotime("2017-08-18 08:08:08"); //设定毕业时间,转成时间戳
$second = $endtime - $now; //获取毕业时间到现在时间的时间戳(秒数)
$year = floor($second/3600/24/365); //从这个时间戳中换算出年头数
$temp = $second - $year*365*24*3600;//从时间戳中去掉整年的秒数,就剩下月份的秒数
$month = floor($temp/3600/24/30); //从这个时间戳中换算出月数
$temp = $temp - $month*30*24*3600; //从时间戳中去掉整月的秒数,就剩下天的秒数
$day = floor($temp/3600/24); //从这个时间戳中换算出剩余的天数
$temp = $temp - $day*3600*24; //从时间戳中去掉整天的秒数,就剩下小时的秒数
$hour = floor($temp/3600); //从这个时间戳中换算出剩余的小时数
$temp = $temp - $hour*3600; //从时间戳中去掉整小时的秒数,就剩下分的秒数
$minute = floor($temp/60); //从这个时间戳中换算出剩余的分数
$second1 = $temp - $minute*60; //最后就只有剩余的秒数了
echo "距离指定日期还有{$year}年{$month}月{$day}天{$hour}小时{$minute}分{$second1}秒";
?>
```
# 在PHP中获取日期和时间
* `getdate` -- 取得日期/时间信息
```
格式:array getdate ( [int timestamp] )
```
返回一个根据 timestamp 得出的包含有日期信息的结合数组。如果没有给出时间戳则认为是当前本地时间。数组中的单元如下:
![](https://box.kancloud.cn/e206515bcca739ac3c57d0cf022c06cd_836x391.png)
# 日期和时间的格式化输出
* `date` -- 格式化一个本地时间/日期
```
格式:string date ( string format [, int timestamp] )
```
返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp 是可选的,默认值为 time()(当前时间戳)。
例如:
```
echo date(“Y年m月d日 H:i:s”); //2010年10月28日 14:22:28
```
常用参数:
```
Y:四位数年
m:月01-12
n:月1-12
d:天01-31
j:天1-31
H:时24时制
h:小时12制
i:分钟00-59
s:秒00-59
w:星期几0-6
A:上午AM或下午PM
a:上午am或下午pm。
```
# 修改PHP的默认时区
修改PHP的默认时区有两种方式:
* 修php.ini配置文件:
date.timezone = Etc/GMT+8
* date_default_timezone_set( ): -- 设定用于一个脚本中所有日期时间函数的默认时区 。
如:date_default_timezone_set(“PRC”); //中国时区。
* date_default_timezone_get( ): -- 获取当前时区
# 使用微妙计算PHP脚本执行时间
* `microtime` -- 返回当前 Unix 时间戳和微秒数
```
格式:mixed microtime ( [bool get_as_float] )
```
如果调用时不带可选参数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。
如果给出了 get_as_float 参数并且其值等价于 TRUE,microtime() 将返回一个浮点数。
> Have a try
1. 代码:输出“2011-5-19 14:07”这个日期的时间戳。
2. 代码:将“1305786147”时间戳格式化成”年-月-日 时:分:秒”后输出。
3. 代码:求出”2011-10-01”是星期几?
4. 代码:输出两天前这个时候的日期(年-月-日 时:分:秒);
5. 代码:计算并输出1000000次字符串比较和数字比较的耗时。
6. 写一个万年历试一试吧
- 前言
- Ⅰ.PHP基础知识
- 1.PHP基本语法(一)
- 2.PHP基本语法(二)
- 3.流程控制结构
- 4.PHP函数
- 5.数组
- 6.字符串
- 7.PHP正则表达式
- 8.PHP的日期和时间
- 9.GD库图像处理
- 10.文件处理系统
- 11.文件上传和下载
- 12.数据库之MySQL(概述)
- Ⅱ.ThinkPHP5入门实践
- 一、先看到页面
- 1.1只展示页面
- 1.2给视图传递数据
- 1.3使用公共模板
- 1.4使用模板布局
- 二、简单的数据库操作
- (1)查
- (2)增
- (3)改
- (4)删
- (5)链式操作
- 三、初级-阶段性综合应用
- (1)注册
- (2)登录
- 四、各种基本操作
- 1.操作Session
- 2.操作Cookie
- 3.文件上传
- 五、富文本编辑器
- 集成wangEditor
- 集成UEditor
- 六、验证码
- 图片验证码
- Ⅲ.常用类库的使用
- 一、PHPExcel表格导入
- 二、PHPExcel表格导出
- 三、阿里大于短信验证码
- 四、时间戳操作Time
- 五、邮件发送
- 六、PHP操作Python
- Ⅳ.实例讲解
- 一、病房管理系统
- 写在前面
- 1.引导页
- 2.公共模板
- 3.登录
- 4.功能引导页集合
- 5.修改密码
- 6.员工信息注册
- 7.员工信息更新
- 8.员工信息删除
- 9.病人信息注册
- 10.病人信息更新
- 11.出院手续办理
- 12.病人信息删除
- 13.科室信息查询
- 14.医护信息查询
- 15.病房信息查询
- 16.病历信息查询
- 加群验证
- 必看推荐阅读【不断更新】