您好,登錄后才能下訂單哦!
怎么在PHP中對UNIX時間戳與日期間進行轉換?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
UNIX時間戳是保存日期和時間的一種緊湊簡潔的方法,是大多數UNIX系統中保存當前日期和時間的一種方法,也是在大多數計算機語言中表示日期和時間的一種標準格式。以32位整數表示格林威治標準時間,例如,使用證書11230499325表示當前時間的時間戳。UNIX時間戳是從1970年1月1日零點(UTC/GMT的午夜)開始起到當前時間所經過的秒數。1970年1月1日零點作為所有日期計算的基礎,這個日期通常成為UNIX紀元。
因為UNIX時間戳是一個32位的數字格式,所以特別適用于計算機處理,例如計算兩個時間點之間相差的天數。另外,由于文化和地區的差異,存在不同的時間格式,以及時區的問題。所以UNIX時間戳也是根據一個時區進行標準化而設計的一種通用格式,并且這種格式可以很容易地轉換為任何格式。也因為UNIX時間戳是一個32位的證書表示的,所以在處理1902年以前或2038年以后的事件將會遇到一些問題。另外,在Windows下,由于時間戳不能為負數,所以使用PHP中提供的時間戳函數處理1970年之前的日期,就會發生錯誤。要使PHP代碼具有可移植性,必須記住這一點。
將日期和時間轉變成UNIX時間戳
在PHP中,如果需要將日期和時間轉變成UNIX時間戳,可以調用mktime()函數。該函數的原型如下所示:
該函數中所有參數都是可選的,如果參數為空,默認將當前時間轉變成UNIX時間戳。這樣,和直接調用time()函數獲取當前的UNIX時間戳功能相同。參數也可以從右向左省略,任何省略的參數會被設置成本地日期和時間的當前值。如果只想轉變日期,對具體的時間不在乎,可以將前三個轉變時間的參數都設置為0.mktime()函數對于日期運算和驗證非常有用,它可以自動校政越界的輸入。如下所示:
如果有需要將任何英文文本的日期時間描述直接解析為UNIX時間戳,可以使用strtotime()函數,該函數的圓形如下所示:
函數strtotime()可以用英語的自然語言創建謳歌時刻的時間戳,接受一個包含美國英語日期格式的字符串并嘗試將其解析為UNIX時間戳(自January 1 1970 00:00:00 GMT起的描述),其值相對于now參數給出的時間,如果沒有提供次參數則用系統當前時間。該函數執行成功則返回時間戳,否則返回FALSE。和mktime()的對比如下所示:
下例通過使用strtotime()函數編寫一個紀念日的倒計時程序,來介紹一下該函數在項目開發中的實際應用,示例代碼如下所示:
注意:如果給定的年份是兩位數字的格式,則其值0-69表示2000-2069,70-100表示1970-2000。
日期的計算
在PHP中,計算兩個日期之間相隔的長度,最簡單的方法就是通過計算兩個UNIX時間戳之差來獲得。例如,在PHP腳本中接收來自HTML表單用戶提交的出生日期,計算這個用戶的年齡。如下所示:
在以上的腳本中,調用mktime()函數將從用戶出生日期轉變為UNIX時間戳,再調用time()函數獲取當前時間的UNIX時間戳。因為這個日期的格式都是使用整數表示的,所以可以將他們相減。又將計算后獲取的UNIX時間戳除以一年的秒數,將UNIX時間戳轉變為以年度量的單位。
關于怎么在PHP中對UNIX時間戳與日期間進行轉換問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。