unix 时间戳:从1970年1月1日0点开始到当前时间所经过的秒数。

1.将日期转换为UNIX时间戳
mktime():可以自动校正越界的输入

原型 : mktime(hour,minute,second,month,day,year);
实例:

<?php
    echo date("Y-m-d",mktime(0,0,0,2,12,2015));   //2015-12-12
    echo date("Y-m-d h:i:s",mktime(7,50,59,10,21,2015)); //2015-10-21 07:50:59
    echo date("Y-m-d",mktime(0,0,0,12,33,2015));   //2016-01-02 ,日期超过31天,自动校正时间
?>

2.将英文文本的日期时间解析为unix时间戳
strtotime()
原型 :strtotime(time,now)

<?php
    echo strtotime("now");   //1447987573
    echo date("Y-m-d",strtotime("now"));   //2015-11-20
    echo date("Y-m-d h:i:s",strtotime("now"));   //2015-11-20 02:49:18
    echo date("Y-m-d",strtotime("8 december 2015"));   //2015-12-08
?>

实例:通过strtotime()编写一个纪念日的倒计时程序

<?php
        $now = strtotime("now");  //开始时间
	$endTime = strtotime('2018-10-12 10:20:59');  //毕业时间,转成时间戳

	$second = $endTime - $now;   //获取从毕业到现在的时间戳(秒数)
	$year = floor($second/3600/24/365);  //从这个时间戳中算出的年数   floor() 函数向下舍入为最接近的整数。

	$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*24*3600;  //减去整天的秒数,剩下小时的秒数
	$hour = floor($temp/3600);  //换算出剩余的小时数

	$temp = $temp - $hour*3600;  //减去整小时的秒数,剩下分的秒数
	$minute = floor($temp/60);  //换算出剩余的分数

	$second1 = $temp - $minute*60;   //剩余的秒数

	echo "距离毕业还有{$year}年{$month}月{$day}天{$hour}小时{$minute}分{$second1}秒";  //距离毕业还有2年10月27天1小时56分14秒
?>

扩展 : 日期的计算
计算两个日期之间相隔的长度,最简单的方法就是通过计算两个UNIX时间戳只差。
实例 : 在php脚本中接收来自html表单提交的出生日期,来计算这个用户的年龄

<?php
        $year = 1989;
	$month = 12;
	$day = 20;
	$birthday = mktime(0,0,0,$month,$day,$year);   //转换成时间戳
	$nowDay = strtotime("now");  //获取到当前日期时间戳
	$ageUnix = $nowDay - $birthday;
	$age = floor($ageUnix/(60*60*24*365));
	echo "年龄:$age";   // 年龄:25
?>

日期和时间格式化输出
当日期和时间需要保存或计算时,使用UNIX时间戳作为标准格式。
缺点 : unix时间戳格式可读性差
解决办法:调用date()格式化本地时间和日期
语法 date(format,timestamp) 格式化一个本地时间和日期

<?php
        date_default_timezone_set('PRC'); //设置中国时区
	echo date("Y年-m月-d日 H:i:s");   //2015年-11月-20日 17:30:21
?>

---------------------------------

说明 :学习笔记

参考资料 :《细说PHP》

php日期,时间相关知识整理的更多相关文章

  1. Linux系统基础知识整理

    一.说明 本篇文章,我将结合自己的实践以及简介,来对linux系统做一个直观清晰的介绍,使得哪些刚接触Linux的小伙伴可以快速入门,也方便自己以后进行复习查阅. 二.基本知识整理 1.Linux文件 ...

  2. 【转】WIFI基本知识整理

    WIFI基本知识整理 这里对wifi的802.11协议中比较常见的知识做一个基本的总结和整理,便于后续的学习.因为无线网络中涉及术语很多,并且许多协议都是用英文描述,所以有些地方翻译出来会有歧义,这种 ...

  3. Linux基础-shell脚本知识整理和脚本编写----------变量、运算符、流程控制、函数、计划任务(发送邮件)

    I:知识整理:变量.运算符.流程控制.函数.计划任务 变量 系统变量:set:显示所有变量                env:环境变量 常用系统变量: path pwd lang home his ...

  4. Linux系统基础知识整理(一)

    本文来自于: https://www.cnblogs.com/hafiz/p/6686187.html#4196989 一.说明 本篇文章,我将结合自己的实践以及简介,来对linux系统做一个直观清晰 ...

  5. android内部培训视频_第三节(3)_常用控件(ViewPager、日期时间相关、ListView)

    第三节(2):常用控件之ViewPager.日期时间相关.ListView  一.ViewPager 实例:结合PagerAdapter滑动切换图片  二.日期时间相关:AnalogClock\Dig ...

  6. js事件(Event)知识整理

    事件(Event)知识整理,本文由网上资料整理而来,需要的朋友可以参考下   鼠标事件 鼠标移动到目标元素上的那一刻,首先触发mouseover 之后如果光标继续在元素上移动,则不断触发mousemo ...

  7. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  8. Kali Linux渗透基础知识整理(二)漏洞扫描

    Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...

  9. wifi基础知识整理

    转自 :http://blog.chinaunix.net/uid-9525959-id-3326047.html WIFI基本知识整理 这里对wifi的802.11协议中比较常见的知识做一个基本的总 ...

随机推荐

  1. OpenResty+lua+GraphicsMagick生成缩略图

    1.安装GraphicsMagick 下载地址:http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.19/G ...

  2. 洛谷 P1462 通往奥格瑞玛的道路 Label: 最小化最大值 && spfa (存多条边示例)

    题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目描述 在艾泽拉斯, ...

  3. Linux之进程管理

    ==================================================================================================== ...

  4. ThinkPHP3.2.3--Linux服务器首页文件index.php路径配置问题

    在windows服务器环境下,可以define ('SITE_URL','http://192.168.1.101/'); 但上传到linux服务器环境下不能正常解析,可使用相对路径:define ( ...

  5. SpringMVC整合Shiro

    首先是web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=&quo ...

  6. Maven3路程(一)用Maven创建第一个web项目(1)

    一.创建项目 1.Eclipse中用Maven创建项目 上图中Next 2.继续Next 3.选maven-archetype-webapp后,next 4.填写相应的信息,Packaged是默认创建 ...

  7. 采用DOM进行表格的修改操作

    2015-08-31 <html> <head> <title>采用DOM进行表格的修改操作</title> <script language=& ...

  8. #1045 - Access denied for user 'root'@'localhost' (using password: NO)

    解决办法 打开 phpmyadmin里的config.inc.php文件 $cfg['Servers'][$i][ 'host'] = 'localhost';$cfg['Servers'][$i][ ...

  9. HTML 5 服务器发送事件

    接收 Server-Sent 事件通知 EventSource 对象用于接收服务器发送事件通知: 实例 var source=new EventSource("demo_sse.php&qu ...

  10. websocket总结

    一.WebSocket简介 WebSocket  protocol是HTML5一种新的协议,WebSocket 是目前唯一真正实现全双工通信的服务器向客户端推送的互联网技术.WebSocket的出现使 ...