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. Codeforces Round #210 (Div. 2) C. Levko and Array Recovery

    题目链接 线段树的逆过程,想了老一会,然后发现应该是包含区间对存在有影响,就不知怎么做了...然后尚大神,说,So easy,你要倒着来,然后再正着来,判断是不是合法就行了.然后我乱写了写,就过了.数 ...

  2. bug:clang: error: no input files

    1.clang: error: no input files这个问题一般是因为你删除或者移动了某一个文件,但是在你的编译资源里面( project > target > Build Pha ...

  3. JS相关环境搭建:Nodejs、karma测试框架、jsDuck、Express

    第一章:压缩js(nodejs,uglify) 第一步:安装nodejs环境 直接下载http://www.nodejs.org/download/ 下载完成后直接下一步下一步即可,完了我们就具有no ...

  4. python 之select

    服务端源码 #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ @author: zengchunyun "& ...

  5. python 面向对象 初级

    面向对象 与 面向过程 面向对象对象,是根据某个对象,进行编写对象属性,不考虑对象以外的因素,只对对象本事的一些属于自己的属性进行创造,不用考虑 业务之间的逻辑. 面向过程, 是按照业务的一步步发展进 ...

  6. Js实现MD5加密

    在页面中引用md5.js文件,调用方法为 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8&qu ...

  7. Oracle中"行转列"的实现方式

    在报表的开发当中,难免会遇到行转列的问题. 以Oracle中scott的emp为例,统计各职位的人员在各部门的人数分布情况,就可以用"行转列": scott的emp的原始数据为: ...

  8. 看好你的门-客户端传数据-用java修改referer

    1.简单说明 Referer.origin用来表明,浏览器向WEB服务器表明自己来自哪里.但是就它本身而言,并非完全安全. 写一个例子,可以任意修改http信息头中的referer.origin 2. ...

  9. Struts的文件下载功能实现代码

    Action: package com.tengfeiyang.action; import java.io.File; import java.io.FileInputStream; import ...

  10. 使用 mock.js 让前端开发与后端独立

    直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...