Home > Backend Development > PHP Tutorial > PHP date, time related knowledge collection, _PHP tutorial

PHP date, time related knowledge collection, _PHP tutorial

WBOY
Release: 2016-07-12 09:04:15
Original
825 people have browsed it

PHP date and time related knowledge collection,

unix timestamp: the number of seconds elapsed from 0:00 on January 1, 1970 to the current time.

1. Convert date to UNIX timestamp
mktime(): can automatically correct out-of-bounds input

Prototype: mktime(hour, minute, second, month, day, year);
Instance:

<?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天,自动校正时间
?>
Copy after login

2. Parse the date and time of English text into unix timestamp
strtotime()
Prototype: 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
?>
Copy after login

Example: Write an anniversary countdown program through 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秒
?>
Copy after login

Extension: Date Calculation
The simplest way to calculate the length between two dates is to calculate the difference between two UNIX timestamps.
Example: Receive the date of birth submitted from the html form in a php script to calculate the age of this user

<?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
?>
Copy after login

Date and time formatted output
When dates and times need to be saved or calculated, use UNIX timestamp as the standard format.
Disadvantages: unix timestamp format is poorly readable
Solution: call date() to format local time and date
Syntax date(format, timestamp) format a local time and date

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

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

Instructions: Study Notes

Reference material: "Explanation of PHP"

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1073813.htmlTechArticlephp date and time related knowledge collection, unix timestamp: from 0:00 on January 1, 1970 to the present The number of seconds elapsed. 1. Convert date to UNIX timestamp mktime(): can automatically correct...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template