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协议中比较常见的知识做一个基本的总 ...
随机推荐
- Coder-Strike 2014 - Finals (online edition, Div. 2) A. Pasha and Hamsters
水题 #include <iostream> #include <vector> #include <algorithm> using namespace std; ...
- ACM Haffman编码
Haffman编码 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 哈弗曼编码大家一定很熟悉吧(不熟悉也没关系,自己查去...).现在给你一串字符以及它们所对应的权值 ...
- [深入浅出Windows 10]布局原理
5.2 布局原理 很多时候在编写程序界面的时候都会忽略了应用布局的重要性,仅仅只是把布局看作是对UI元素的排列,只要能实现布局的效果就可以了,但是在实际的产品开发中这是远远不够的,你可能面临要实现的布 ...
- [Cocos2d-x For WP8]矩形碰撞检测
在游戏中我们通常会涉及到两个精灵之间的碰撞的计算,那么在Cocos2d-x里面我们通常会用矩形碰撞检测来计算两个精灵在运动的过程中是否碰撞到了.原理很简单,就是当运动的时候通过精灵的矩形坐标进行遍历来 ...
- 【noiOJ】p1794
t1794:集合加法 查看 提交 统计 提问 总时间限制: 3000ms 内存限制: 65536kB 描述 给出2个正整数集合A = {pi | 1 <= i <= a},B = {q ...
- 访问google,youtube
一.找到host文件 windows : C:\windows\system32\drivers\etc mac os: /private/etc linux : /etc 二.修改host文件 ht ...
- Selenium_用selenium webdriver实现selenium RC中的类似的方法
最近想总结一下学习selenium webdriver的情况,于是就想用selenium webdriver里面的方法来实现selenium RC中操作的一些方法.目前封装了一个ActionDrive ...
- docker 报Error: docker-engine-selinux conflicts with docker-selinux-1.9.1-25.el7.centos.x86_64
root@ecshop Deploy]# yum -y install docker-engine-selinux.noarchLoaded plugins: fastestmirrorhttp:// ...
- nodejs模仿http请求组件nodegrass简单例子
1.搭建nodejs环境. 2.执行npm install nodegrass命令. 3.引入模块,var ng= require(nodegrass); 4.下面先看nodegrass底层的get方 ...
- c#语句 随堂练习2
1.方程ax²+bx+c=0是一元二次方程,求根. 2.输入一个年份 ,判断是不是闰年.(能被4整除但不能被100整除的年份是闰年,有的世纪年也是闰年) 3.标准体重:男士体重=身高-100±3:女士 ...