php日期,时间相关知识整理
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日期,时间相关知识整理的更多相关文章
- Linux系统基础知识整理
一.说明 本篇文章,我将结合自己的实践以及简介,来对linux系统做一个直观清晰的介绍,使得哪些刚接触Linux的小伙伴可以快速入门,也方便自己以后进行复习查阅. 二.基本知识整理 1.Linux文件 ...
- 【转】WIFI基本知识整理
WIFI基本知识整理 这里对wifi的802.11协议中比较常见的知识做一个基本的总结和整理,便于后续的学习.因为无线网络中涉及术语很多,并且许多协议都是用英文描述,所以有些地方翻译出来会有歧义,这种 ...
- Linux基础-shell脚本知识整理和脚本编写----------变量、运算符、流程控制、函数、计划任务(发送邮件)
I:知识整理:变量.运算符.流程控制.函数.计划任务 变量 系统变量:set:显示所有变量 env:环境变量 常用系统变量: path pwd lang home his ...
- Linux系统基础知识整理(一)
本文来自于: https://www.cnblogs.com/hafiz/p/6686187.html#4196989 一.说明 本篇文章,我将结合自己的实践以及简介,来对linux系统做一个直观清晰 ...
- android内部培训视频_第三节(3)_常用控件(ViewPager、日期时间相关、ListView)
第三节(2):常用控件之ViewPager.日期时间相关.ListView 一.ViewPager 实例:结合PagerAdapter滑动切换图片 二.日期时间相关:AnalogClock\Dig ...
- js事件(Event)知识整理
事件(Event)知识整理,本文由网上资料整理而来,需要的朋友可以参考下 鼠标事件 鼠标移动到目标元素上的那一刻,首先触发mouseover 之后如果光标继续在元素上移动,则不断触发mousemo ...
- Kali Linux渗透基础知识整理(四):维持访问
Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...
- Kali Linux渗透基础知识整理(二)漏洞扫描
Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...
- wifi基础知识整理
转自 :http://blog.chinaunix.net/uid-9525959-id-3326047.html WIFI基本知识整理 这里对wifi的802.11协议中比较常见的知识做一个基本的总 ...
随机推荐
- IOS 蓝牙相关-连接外设的代码实现(2)
我们具体说明一下中心模式的应用场景.主设备(手机去扫描连接外设,发现外设服务和属性,操作服务和属性的应用.一般来说,外设(蓝牙设备,比如智能手环之类的东西), 会由硬件工程师开发好,并定义好设备提供的 ...
- iOS 发布遇到的问题 (转载)
1.ios图片命名Icon-120.png – 120×120 iphone & ipod touch(ios7) http://blog.csdn.net/xyxjn/article/de ...
- RabbitMQ三种Exchange
Direct Exchange – 处理路由键.需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配.这是一个完整的匹配.如果一个队列绑定到该交换机上要求路由键 “dog”,则只有被标记 ...
- SpringMVC——接收请求参数和页面传参
Spring接收请求参数: 1.使用HttpServletRequest获取 @RequestMapping("/login.do") public String login(Ht ...
- HTML 插入视频
HTML 5 video 视频标签全属性详解 现在如果要在页面中使用video标签,需要考虑三种情况,支持Ogg Theora或者VP8(如果这玩意儿没出事的话)的(Opera.Mozilla.C ...
- [转]Oracle数据库ASH和AWR的简单介绍
在Oracle数据库中,有时我们可能会遇到这样的术语:ASH和AWR,那么它们是怎样产生的呢?它们的作用又是什么呢?本文我们就来介绍这一部分内容. 1.10g之前 用户的连接将产生会话,当 ...
- 二叉树-二叉查找树-AVL树-遍历
一.二叉树 定义:每个节点都不能有多于两个的儿子的树. 二叉树节点声明: struct treeNode { elementType element; treeNode * left; treeNod ...
- node exports与 module.exports的区别
你肯定非常熟悉nodejs模块中的exports对象,你可以用它创建你的模块.例如:(假设这是rocker.js文件) exports.name = function() { console.log( ...
- ActiveMQ: 搭建Broker集群(cluster)
上一篇介绍了基于Networks of Borkers的2节点HA方案,这一篇继续来折腾Networks of Brokers,当应用规模日渐增长时,2节点的broker可能仍然抗不住访问压力,这时候 ...
- Apache Spark源码走读之24 -- Sort-based Shuffle的设计与实现
欢迎转载,转载请注明出处. 概要 Spark 1.1中对spark core的一个重大改进就是引入了sort-based shuffle处理机制,本文就该处理机制的实现进行初步的分析. Sort-ba ...