php有操作時間的方法。 php中提供了豐富的日期時間處理方法:1、date(),格式化本地日期和時間;2、mktime(),傳回日期的時間戳記;3、idate(),格式化本地時間為整數;4 、strtotime(),將時間字串轉為時間戳記等等。
本教學操作環境:windows7系統、PHP7.1版、DELL G3電腦
php有操作時間的方法。
在 Web 開發中對日期和時間的使用與處理是必不可少的,例如表單提交的時間、使用者登入的時間、資料庫中資料的更新和刪除的時間等。想要記錄這些操作執行的時刻,就需要透過日期和時間來完成。
PHP 中為我們提供了豐富的日期時間處理函數:
函數 | 描述 |
---|---|
#checkdate() | 驗證格利高里日期。 |
date_add() | 新增日、月、年、時、分和秒到一個日期。 |
date_create_from_format() | 會傳回一個根據指定格式進行格式化的新的 DateTime 物件。 |
date_create() | 傳回一個新的 DateTime 物件。 |
date_date_set() | 設定一個新的日期。 |
date_default_timezone_get() | 傳回預設時區,被所有的 Date/Time 函數使用。 |
date_default_timezone_set() | 設定預設時區,被所有的 Date/Time 函數使用。 |
date_diff() | 傳回兩個日期間的差值。 |
date_format() | 傳回根據指定格式進行格式化的日期。 |
date_get_last_errors() | 傳回日期字串中的警告/錯誤。 |
date_interval_create_from_date_string() | 從字串的相關部分建立一個 DateInterval。 |
date_interval_format() | 格式化時間間隔。 |
date_isodate_set() | 設定 ISO 日期。 |
date_modify() | 修改時間戳記。 |
date_offset_get() | 傳回時區偏移量。 |
date_parse_from_format() | #根據指定的格式傳回一個帶有指定日期的詳細資訊的關聯數組。 |
date_parse() | 傳回一個帶有指定日期的詳細資訊的關聯陣列。 |
date_sub() | 從指定日期減去日、月、年、時、分和秒。 |
date_sun_info() | 傳回一個包含指定日期與地點的日出/日落和黃昏開始/黃昏結束的資訊的陣列。 |
date_sunrise() | 傳回指定日期與地點的日出時間。 |
date_sunset() | 傳回指定日期與地點的日落時間。 |
date_time_set() | 設定時間。 |
date_timestamp_get() | 傳回 Unix 時間戳記。 |
date_timestamp_set() | 設定基於 Unix 時間戳記的日期和時間。 |
date_timezone_get() | 傳回給定 DateTime 物件的時區。 |
date_timezone_set() | 設定 DateTime 物件的時區。 |
date() | 格式化本機日期和時間。 |
getdate() | 傳回某個時間戳記或目前本機的日期/時間的日期/時間資訊。 |
gettimeofday() | #傳回目前時間。 |
gmdate() | 格式化 GMT/UTC 日期和時間。 |
gmmktime() | 傳回 GMT 日期的 UNIX 時間戳記。 |
gmstrftime() | 根據區域設定格式化 GMT/UTC 日期和時間。 |
idate() | 格式化本機時間/日期為整數。 |
localtime() | 傳回本機時間。 |
microtime() | 傳回目前 Unix 時間戳記的微秒數。 |
mktime() | 傳回日期的 Unix 時間戳記。 |
strftime() | 根據區域設定格式化本機時間/日期。 |
strptime() | 解析由 strftime() 產生的時間/日期。 |
strtotime() | 將任何英文文字的日期或時間描述解析為 Unix 時間戳記。 |
time() | 傳回目前時間的 Unix 時間戳記。 |
timezone_abbreviations_list() | 傳回包含夏令時、偏移量和時區名稱的關聯陣列。 |
timezone_identifiers_list() | 傳回帶有所有時區識別碼的數值陣列。 |
timezone_location_get() | 傳回指定時區的位置資訊。 |
timezone_name_from_ abbr() | #根據時區縮寫傳回時區名稱。 |
timezone_name_get() | 傳回時區的名稱。 |
timezone_offset_get() | 傳回相對於 GMT 的時區偏移量。 |
timezone_open() | 建立一個新的 DateTimeZone 物件。 |
timezone_transitions_get() | 傳回時區的所有轉換。 |
timezone_version_get() | 傳回時區資料庫的版本。 |
下面簡單介紹一些時間日期處理方法:
1、PHP取得目前時間(5種方式)
在日期和時間函數中,UNIX 時間戳記的獲取非常重要,時間戳是一個字元序列,是指格林尼治時間1970年01 月01 日00 時00 分00 秒(北京時間1970 年01 月01 日08 時00 分00 秒)起至現在的總毫秒數。下面介紹幾個取得目前時間的函數。
gmmktime()
gmmktime() 函數可取得 GMT 日期的 UNIX 時間戳記。語法如下:
int gmmktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )
此函數的參數可以從右到左依序空著,空著的參數會被設為對應的目前 GMT 值。
使用範例如下:
<?php echo gmmktime(); //没有设置参数, 则默认取得当前GMT时间 echo gmmktime(0,45,3,7,7,2016); //设置参数表示GMT时间2016年7月7日0点45分3秒 ?>
執行上述程式的列印結果為:
1467909956 1467852303
mktime()
mktime() 也可取得日期的UNIX 時間戳記。語法如下:
int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
此函數根據給出的參數傳回 UNIX 時間戳記。時間戳記是一個長整數,包含了從 UNIX 紀元到給定時間的秒數。
和 gmmktime() 函數一樣,該函數的參數也可以從右向左省略,任何省略的參數會被設定成本地日期和時間的目前值。
使用範例如下:
<?php echo mktime(); // 没有设置参数则默认取得当前GMT时间 echo mktime(0,45,3,7,7,2016); //设置参数表示GMT时间2016年7月7日0点45分3秒 ?>
執行上述程式的列印結果為:
1467910465 1467852303
microtime()
mixed microtime ([ bool $get_as_float ] )
<?php echo microtime(); //返回 msec sec 格式字符串表示时间 echo "<br/>"; echo microtime(true); //返回一个浮点型字符串表示时间 ?>
0.40474900 1467910862 1467910862.4048
int time ( void )
<?php echo time(); ?>
1467911104
array getdate ([ int $timestamp = time() ] )
說明 | # 傳回值範例 | |
---|---|---|
秒的數字表示 | 0 到59 | |
分鐘的數字表示 | 0 到59 | |
小時的數字表示 | ##0 到23 | |
月份中第幾天的數字表示 | 1 到31 | |
星期中第幾天的數字表示 | 0(週日)到6(週六) | |
月份的數字表示 | 1 到12 | |
4 位數表示的完整年份 | 例如:1999 或2019 | |
一年中第幾天的數字表示 | 0 到365 | |
星期幾的完整文本表示 | Monday 到Sunday | |
月份的完整文本表示,例如January 或April | # January 到December | |
自從UNIX 紀元開始至今的秒數,和time() 的回傳值以及用於date() 的值類似 | 系統相關,典型值為-2147483648 ~ 2147483647 |