欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP中UNIX時間戳和日期間的轉換與計算實例

 更新時間:2014年11月19日 11:43:38   投稿:junjie  
這篇文章主要介紹了PHP中UNIX時間戳和日期間的轉換與計算實例,本文講解了將日期和時間轉變成UNIX時間戳、日期的計算等內容,需要的朋友可以參考下

UNIX時間戳是保存日期和時間的一種緊湊簡潔的方法,是大多數UNIX系統中保存當前日期和時間的一種方法,也是在大多數計算機語言中表示日期和時間的一種標準格式。以32位整數表示格林威治標準時間,例如,使用證書11230499325表示當前時間的時間戳。UNIX時間戳是從1970年1月1日零點(UTC/GMT的午夜)開始起到當前時間所經過的秒數。1970年1月1日零點作為所有日期計算的基礎,這個日期通常成為UNIX紀元。

因為UNIX時間戳是一個32位的數字格式,所以特別適用于計算機處理,例如計算兩個時間點之間相差的天數。另外,由于文化和地區(qū)的差異,存在不同的時間格式,以及時區(qū)的問題。所以UNIX時間戳也是根據一個時區(qū)進行標準化而設計的一種通用格式,并且這種格式可以很容易地轉換為任何格式。也因為UNIX時間戳是一個32位的證書表示的,所以在處理1902年以前或2038年以后的事件將會遇到一些問題。另外,在Windows下,由于時間戳不能為負數,所以使用PHP中提供的時間戳函數處理1970年之前的日期,就會發(fā)生錯誤。要使PHP代碼具有可移植性,必須記住這一點。

將日期和時間轉變成UNIX時間戳

在PHP中,如果需要將日期和時間轉變成UNIX時間戳,可以調用mktime()函數。該函數的原型如下所示:

復制代碼 代碼如下:

int mktime([int hour [,int minute[,int second[,int month[,int day[int year]]]]]])

該函數中所有參數都是可選的,如果參數為空,默認將當前時間轉變成UNIX時間戳。這樣,和直接調用time()函數獲取當前的UNIX時間戳功能相同。參數也可以從右向左省略,任何省略的參數會被設置成本地日期和時間的當前值。如果只想轉變日期,對具體的時間不在乎,可以將前三個轉變時間的參數都設置為0.mktime()函數對于日期運算和驗證非常有用,它可以自動校政越界的輸入。如下所示:

復制代碼 代碼如下:

<?php
echo date("Y-m-d",mktime(0,0,0,12,36,2008))."\n";    //日期超過31天,計算后輸出 2009-01-05
echo date("Y-m-d",mktime(0,0,0,14,1,2010))."\n";     //月份超過12月,計算后輸出2011-02-01
echo date("Y-m-d",mktime(0,0,0,1,1,2012))."\n";      //沒有問題的轉變,輸出結果2012-01-01
echo date("Y-m-d",mktime(0,0,0,1,1,99))."\n";        //會將99年轉變?yōu)?999年, 1990-01-01
?>

如果有需要將任何英文文本的日期時間描述直接解析為UNIX時間戳,可以使用strtotime()函數,該函數的圓形如下所示:

復制代碼 代碼如下:

int strtotime(string time[,int now])

函數strtotime()可以用英語的自然語言創(chuàng)建謳歌時刻的時間戳,接受一個包含美國英語日期格式的字符串并嘗試將其解析為UNIX時間戳(自January 1 1970 00:00:00 GMT起的描述),其值相對于now參數給出的時間,如果沒有提供次參數則用系統當前時間。該函數執(zhí)行成功則返回時間戳,否則返回FALSE。和mktime()的對比如下所示:

復制代碼 代碼如下:

<?php
echo date("Y-m-d", strtotime("now"));                  //輸出現在的時間戳
echo date("Y-m-d", strtotime("8 may 2012"));           //輸出2012-05-08
echo date("Y-m-d", strtotime("+1 day"));               //輸出現在的日期加1天
echo date("Y-m-d", strtotime("last monday"));          //輸出2012-04-02
?>

下例通過使用strtotime()函數編寫一個紀念日的倒計時程序,來介紹一下該函數在項目開發(fā)中的實際應用,示例代碼如下所示:

復制代碼 代碼如下:

<?php
$now =strtotime("now"); //當前時間
$endtime= strtotime("2014-08-18 08:08:08"); //設定畢業(yè)時間,轉成時間戳
 
$second = $endtime-$now; //獲取畢業(yè)時間到現在時間的時間戳(秒數)
$year = floor($second/3600/24/365); //從這個時間戳中換算出年頭數
 
$temp =$second-$year*365*24*3600; //從這個時間戳中去掉整年的秒數,就剩下月份的秒數
$month=floor($temp/3600/24/30); //從這個時間戳中共換算出月數
 
$temp=$temp-$month*30*3600*24; //從時間戳中去掉整月的秒數,就剩下天的描述
$day = floor($temp/24/3600); //從這個時間戳中換算出剩余的天數
 
$temp=$temp-$day*3600*24; //從這個時間戳中去掉整天的秒數,就剩下小時的秒數
$hour = floor($temp/3600); //從這個時間戳中換算出剩余的小時數
 
$temp=$temp- $hour*3600; //從時間戳中去掉小時的秒數,就剩下分的秒數
$minute=floor($temp/60); //從這個時間戳中換算出剩余的分數
 
$second1=$temp-$minute*60; //最后只有剩余的秒數了
 
echo "距離培訓畢業(yè)還有($year)年($month)月($day)天($hour)小時($minute)分($second1)秒。";
?>

注意:如果給定的年份是兩位數字的格式,則其值0-69表示2000-2069,70-100表示1970-2000。

日期的計算

在PHP中,計算兩個日期之間相隔的長度,最簡單的方法就是通過計算兩個UNIX時間戳之差來獲得。例如,在PHP腳本中接收來自HTML表單用戶提交的出生日期,計算這個用戶的年齡。如下所示:

復制代碼 代碼如下:

<?php
//從表單中接收用戶提交的出生日期中的年份、月份、天
$year = 1981;
$month = 11;
$day = 05;
$birthday = mktime(0,0,0,$month,$day,$year); //將出生日期轉變?yōu)閁NIX時間戳
$nowdate = time(); //調用time()函數獲取當前時間的UNIX時間戳
$ageunix = $nowdate -$birthday; //兩個時間戳相減獲取用戶年齡的UNIX時間戳
$age = floor($ageunix/3600/24/365); //將UNIX時間戳除以一年的秒數獲取用戶的年齡
echo "年齡:$age";
 
?>

在以上的腳本中,調用mktime()函數將從用戶出生日期轉變?yōu)閁NIX時間戳,再調用time()函數獲取當前時間的UNIX時間戳。因為這個日期的格式都是使用整數表示的,所以可以將他們相減。又將計算后獲取的UNIX時間戳除以一年的秒數,將UNIX時間戳轉變?yōu)橐阅甓攘康膯挝弧?/p>

PS:這里再為大家推薦一個本站Unix時間戳轉換工具,附帶了各種語言下Unix時間戳的操作方法:

Unix時間戳(timestamp)轉換工具:http://tools.jb51.net/code/unixtime

相關文章

  • php中用foreach來操作數組的代碼

    php中用foreach來操作數組的代碼

    php中用foreach來操作數組的代碼,需要的朋友可以參考下。
    2011-07-07
  • PHP接口多繼承及tarits實現多繼承效果的方法

    PHP接口多繼承及tarits實現多繼承效果的方法

    這篇文章主要介紹了PHP接口多繼承及tarits實現多繼承效果的方法,結合實例形式分析了php基于接口的多繼承及PHP5.4中引入的tarits實現多繼承功能簡單操作技巧,需要的朋友可以參考下
    2018-01-01
  • PHP實現多維數組轉字符串和多維數組轉一維數組的方法

    PHP實現多維數組轉字符串和多維數組轉一維數組的方法

    這篇文章主要介紹了PHP實現多維數組轉字符串和多維數組轉一維數組的方法,以實例形式分別介紹了php數組與字符串的轉換技巧,非常簡單實用,需要的朋友可以參考下
    2015-08-08
  • PHP中Memcache操作類及用法實例

    PHP中Memcache操作類及用法實例

    這篇文章主要介紹了PHP中Memcache操作類及用法,以實例形式詳細分析了Memcache類連接數據庫及進行緩存操作的具體用法,非常具有實用價值,需要的朋友可以參考下
    2014-12-12
  • PHP實現微信圖片上傳到服務器的方法示例

    PHP實現微信圖片上傳到服務器的方法示例

    這篇文章主要介紹了PHP實現微信圖片上傳到服務器的方法,涉及php基于curl操作圖片文件的相關實現技巧,需要的朋友可以參考下
    2017-06-06
  • PHP使用imap_open實現讀取QQ郵箱

    PHP使用imap_open實現讀取QQ郵箱

    這篇文章主要為大家詳細介紹了PHP如何使用imap_open實現讀取QQ郵箱功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-02-02
  • 詳解PHP的Yii框架中組件行為的屬性注入和方法注入

    詳解PHP的Yii框架中組件行為的屬性注入和方法注入

    這篇文章主要介紹了詳解PHP的Yii框架中組件行為的屬性注入和方法注入,包括對依賴注入的講解,需要的朋友可以參考下
    2016-03-03
  • PHP 配置后臺登錄以及模板引入

    PHP 配置后臺登錄以及模板引入

    本文主要介紹了PHP 配置后臺登錄以及模板引入的方法步驟。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • PHP實現刪除非站內外部鏈接實例代碼

    PHP實現刪除非站內外部鏈接實例代碼

    一般在做網站系統的時候,出于優(yōu)化等因素的考慮需要再添加文章的時候刪除掉不是本站的鏈接,對于這一要求可以通過讓PHP處理下文章內容,來達到文章外部鏈接的自動刪除的效果。需要的朋友可以參考下
    2014-06-06
  • PHP定界符的使用及注意事項

    PHP定界符的使用及注意事項

    這篇文章主要給大家介紹了關于PHP定界符的使用及注意事項的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01

最新評論