程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php日期,時間相關知識整理,

php日期,時間相關知識整理,

編輯:關於PHP編程

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》

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved