您好,登錄后才能下訂單哦!
這篇“php有沒有操作時間的方法”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“php有沒有操作時間的方法”文章吧。
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()
microtime() 可獲得當前 UNIX 時間戳和微秒數。語法如下:
mixed microtime ([ bool $get_as_float ] )
如果設置 get_as_float 參數值為 true,microtime() 將返回一個浮點數;若不帶參數,則返回一個“msec sec”格式的字符串,其中 sec 是自 UNIX 紀元起到現在的秒數,msec 是微秒部分。字符串的兩部分都是以秒為單位返回的。
使用示例如下:
<?php echo microtime(); //返回 msec sec 格式字符串表示時間 echo "<br/>"; echo microtime(true); //返回一個浮點型字符串表示時間 ?>
執行以上程序的打印結果如下:
0.40474900 1467910862 1467910862.4048
time()
time() 函數可返回當前的 UNIX 時間戳。語法如下:
int time ( void )
time() 函數的語法比較簡單,使用示例如下:
<?php echo time(); ?>
執行以上程序的打印結果為:
1467911104
getdate()
getdate() 可取得日期時間信息。語法如下:
array getdate ([ int $timestamp = time() ] )
該函數返回一個根據 timestamp 得出的包含有日期信息的關聯數組 array。如果沒有給出時間戳,則認為是當前本地時間(此時和 time() 函數取值相同)。
其返回的關聯數組中的鍵名單元如表所示。
鍵名 | 說明 | 返回值例子 |
---|---|---|
seconds | 秒的數字表示 | 0 到 59 |
minutes | 分鐘的數字表示 | 0 到 59 |
hours | 小時的數字表示 | 0 到 23 |
mday | 月份中第幾天的數字表示 | 1 到 31 |
wday | 星期中第幾天的數字表示 | 0(周日)到6(周六) |
mon | 月份的數字表示 | 1 到 12 |
year | 4 位數字表示的完整年份 | 比如:1999 或 2019 |
yday | 一年中第幾天的數字表示 | 0 到 365 |
weekday | 星期幾的完整文本表示 | Monday 到 Sunday |
month | 月份的完整文本表示,,比如 January 或 April | January 到 December |
0 | 自從 UNIX 紀元開始至今的秒數,和 time() 的返回值以及用于 date() 的值類似 | 系統相關,典型值為 -2147483648 ~ 2147483647 |
getdate() 函數的使用示例如下:
<?php echo "<pre>"; var_dump(getdate()); ?>
執行以上程序的打印結果如下:
array(11) { ["seconds"]=>int(57) ["minutes"]=>int(18) ["hours"]=>int(17) ["mday"]=>int(7) ["wday"]=>int(4) ["mon"]=>int(7) ["year"]=>int(2016) ["yday"]=>int(188) ["weekday"]=>string(8) "Thursday" ["month"]=>string(4) "July" [0]=>int(1467911937) }
2、strtotime()與mktime():日期轉時間戳
strtotime() 函數
使用 strtotime() 函數可以將任何字符串類型的日期/時間轉換為 UNIX 時間戳,其語法格式如下:
strtotime($time [,$now = time()])
其中 $time 為表示時間/日期的字符串,例如“2020-01-01”;$now 為可選參數,用來計算返回值的時間戳。函數執行成功會返回指定的字符串,執行失敗返回 FALSE。
另外需要注意的是,如果使用兩位數字表示年份的話,其中 0 ~ 69 表示 2000 ~ 2069,70 ~ 100 則表示 1970 ~ 2000。
【示例】使用 strtotime() 函數獲取指定時間的時間戳。
<?php echo '當前的時間戳是:'.time().'<br>'; echo '使用“now”獲取當前的時間戳:'.strtotime('now').'<br>'; echo '2000-09-10 的時間戳是:'.strtotime("10 September 2000").'<br>'; echo '在當前的時間戳上加一天:'.strtotime("+1 day").'<br>'; echo '在當前的時間戳上加一周:'.strtotime("+1 week").'<br>'; echo '在當前的時間戳上加一周兩天四小時兩分鐘:'.strtotime("+1 week 2 days 4 hours 2 seconds").'<br>'; echo '下一個周四的時間戳:'.strtotime("next Thursday").'<br>'; echo '上一個周一的時間戳:'.strtotime("last Monday").'<br>'; ?>
運行結果如下:
當前的時間戳是:1585273874 使用“now”獲取當前的時間戳:1585273874 2000-09-10 的時間戳是:968515200 在當前的時間戳上加一天:1585360274 在當前的時間戳上加一周:1585878674 在當前的時間戳上加一周兩天四小時兩分鐘:1586065876 下一個周四的時間戳:1585756800 上一個周一的時間戳:1584892800
注意:根據具體時間的變化,程序每次運行的結果略有不同。
mktime() 函數
除了 strtotime() 函數外,我們還可以使用 PHP 中的 mktime() 函數來獲取指定日期的 UNIX 時間戳,該函數的語法格式如下:
mktime ([$hour = date("H") [, $minute = date("i") [, $second = date("s") [, $month = date("n") [, $day = date("j") [, $year = date("Y") [, $is_dst = -1 ]]]]]]])
參數說明如下:
$hour:表示一天中經過的小時數。如果 $hour 為負值,則表示前一天的適當時間;如果 $hour 大于 23,則表示第二天的適當時間。
$minute:表示一個小時內經過的分鐘數。如果 $minute 為負值,則表示前一小時適當的分鐘數;如果 $minute 大于 59,則表示下一小時中的適當分鐘數。
$second:表示一分鐘內經過的秒數。如果 $second 為負值,則表示前一分鐘內的適當秒數;如果 $second 大于59,則表示下一分鐘內的適當秒數。
$month:表示一年中經過的月份數,取值范圍在 1 到 12 之間。如果 $month 小于 1(包括負值),則表示上一年的適當月份;如果 $month 大于 12,則表示下一年的適當月份。
$day:表示一個月中經過的天數,取值范圍在 1 到 31 之間(取決于具體月份的天數)。如果 $day 小于 1(包括負值),則表示上個月的適當天數,比如 0 表示上個月的最后一天,-1 表示上個月的倒數第二天等等;如果 $day 大于本月的最大天數,則表示下個月的適當日期。
$year:表示具體的年份,可以是兩位或四位數字,0 ~ 69 對應 2000 ~ 2069 年,70 ~ 100 對應 1970 ~ 2000年。在如今系統中普遍把 time_t 作為一個 32 位有符號整數的情況下,$year 的合法范圍是 1901 到 2038 之間,不過此限制自 PHP5.1.0 起已被克服了。
$is_dst:本參數可以設為 1,表示正處于夏時制時間(DST),0 表示不是夏時制,或者 -1(默認值)表示不知道是否是夏時制。不過本參數在 PHP5.1.0 中已被廢棄,并在 PHP7.0.0 中移除。
提示:mktime() 函數中的參數可以從右向左省略,任何省略的參數會被設置成本地日期和時間的當前值。如果省略函數的所有參數,那么 mktime() 函數會和 time() 函數一樣,返回當前的時間戳。
【示例】使用 mktime() 函數獲取指定時間的時間戳。
<?php $time1 = time(); echo '當前的時間戳是:'.$time1.'<br>'; $time2 = mktime(0, 0, 0, 3, 26, 20); echo '2020-03-26 00:00:00 的時間戳是:'.$time2.'<br>'; $time3 = mktime(); echo '省略函數的所有參數,獲得的時間戳是:'.$time3.'<br>'; $time4 = mktime(-1, -20, 6, 3, 26, 2020); echo '2020-03-25 22:40:06 的時間戳是:'.$time4.'<br>'; ?>
運行結果如下:
當前的時間戳是:1585216256 2020-03-26 00:00:00 的時間戳是:1585152000 省略函數的所有參數,獲得的時間戳是:1585216256 2020-03-25 22:40:06 的時間戳是:1585147206
以上就是關于“php有沒有操作時間的方法”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。