首頁 後端開發 PHP問題 php有操作時間的方法嗎

php有操作時間的方法嗎

Apr 20, 2022 pm 04:24 PM
php

php有操作時間的方法。 php中提供了豐富的日期時間處理方法:1、date(),格式化本地日期和時間;2、mktime(),傳回日期的時間戳記;3、idate(),格式化本地時間為整數;4 、strtotime(),將時間字串轉為時間戳記等等。

php有操作時間的方法嗎

本教學操作環境: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() 函數取值相同)。

其傳回的關聯數組中的鍵名單元如表所示。

getdate() 函數傳回關聯數組鍵名稱#鍵名稱說明# 傳回值範例seconds秒的數字表示0 到59minutes分鐘的數字表示0 到59hours小時的數字表示mdaywdaymonyear#ydayweekdaymonth0

getdate() 函数的使用示例如下:

<?php
echo "<pre class="brush:php;toolbar:false">";
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 &#39;当前的时间戳是:&#39;.time().&#39;<br>&#39;;
    echo &#39;使用“now”获取当前的时间戳:&#39;.strtotime(&#39;now&#39;).&#39;<br>&#39;;
    echo &#39;2000-09-10 的时间戳是:&#39;.strtotime("10 September 2000").&#39;<br>&#39;;
    echo &#39;在当前的时间戳上加一天:&#39;.strtotime("+1 day").&#39;<br>&#39;;
    echo &#39;在当前的时间戳上加一周:&#39;.strtotime("+1 week").&#39;<br>&#39;;
    echo &#39;在当前的时间戳上加一周两天四小时两分钟:&#39;.strtotime("+1 week 2 days 4 hours 2 seconds").&#39;<br>&#39;;
    echo &#39;下一个周四的时间戳:&#39;.strtotime("next Thursday").&#39;<br>&#39;;
    echo &#39;上一个周一的时间戳:&#39;.strtotime("last Monday").&#39;<br>&#39;;
?>
登入後複製

运行结果如下:

当前的时间戳是: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 &#39;当前的时间戳是:&#39;.$time1.&#39;<br>&#39;;
    $time2 = mktime(0, 0, 0, 3, 26, 20);
    echo &#39;2020-03-26 00:00:00 的时间戳是:&#39;.$time2.&#39;<br>&#39;;
    $time3 = mktime();
    echo &#39;省略函数的所有参数,获得的时间戳是:&#39;.$time3.&#39;<br>&#39;;
    $time4 = mktime(-1, -20, 6, 3, 26, 2020);
    echo &#39;2020-03-25 22:40:06 的时间戳是:&#39;.$time4.&#39;<br>&#39;;
?>
登入後複製

运行结果如下:

当前的时间戳是:1585216256
2020-03-26 00:00:00 的时间戳是:1585152000
省略函数的所有参数,获得的时间戳是:1585216256
2020-03-25 22:40:06 的时间戳是:1585147206
登入後複製

推荐学习:《PHP视频教程

以上是php有操作時間的方法嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

See all articles
##0 到23
月份中第幾天的數字表示1 到31
星期中第幾天的數字表示0(週日)到6(週六)
月份的數字表示 1 到12
4 位數表示的完整年份例如:1999 或2019
一年中第幾天的數字表示0 到365
星期幾的完整文本表示Monday 到Sunday
月份的完整文本表示,例如January 或April# January 到December
自從UNIX 紀元開始至今的秒數,和time() 的回傳值以及用於date() 的值類似 系統相關,典型值為-2147483648 ~ 2147483647