PHP日期和時間-3.2PHP高級教程

閱讀 ?·? 發布日期 2019-06-28 18:33 ?·? admin

PHP date() 函數用于對日期或時間進行格式化。

PHP Date() 函數

PHP Date() 函數把時間戳格式化為更易讀的日期和時間。

語法

date(format,timestamp)
參數 描述
format 必需。規定時間戳的格式。
timestamp 可選。規定時間戳。默認是當前時間和日期。

注釋:時間戳是一種字符序列,它表示具體事件發生的日期和事件。

獲得簡單的日期

date() 函數的格式參數是必需的,它們規定如何格式化日期或時間。

下面列出了一些常用于日期的字符:

  • d - 表示月里的某天(01-31)
  • m - 表示月(01-12)
  • Y - 表示年(四位數)
  • 1 - 表示周里的某天

其他字符,比如 "/", "." 或 "-" 也可被插入字符中,以增加其他格式。

下面的例子用三種不同方法格式今天的日期:

實例

<?php
echo "今天是 " . date("Y/m/d") . "<br>";
echo "今天是 " . date("Y.m.d") . "<br>";
echo "今天是 " . date("Y-m-d") . "<br>";
echo "今天是 " . date("l");
?>

PHP 提示 - 自動版權年份

使用 date() 函數在您的網站上自動更新版本年份:

實例

© 2010-<?php echo date("Y")?>

獲得簡單的時間

下面是常用于時間的字符:

  • h - 帶有首位零的 12 小時小時格式
  • i - 帶有首位零的分鐘
  • s - 帶有首位零的秒(00 -59)
  • a - 小寫的午前和午后(am 或 pm)

下面的例子以指定的格式輸出當前時間:

實例

<?php
echo "現在時間是 " . date("h:i:sa");
?>

注釋:請注意 PHP date() 函數會返回服務器的當前日期/時間!

獲得時區

如果從代碼返回的不是正確的時間,有可能是因為您的服務器位于其他國家或者被設置為不同時區。

因此,如果您需要基于具體位置的準確時間,您可以設置要用的時區。

下面的例子把時區設置為 "Asia/Shanghai",然后以指定格式輸出當前時間:

實例

<?php
date_default_timezone_set("Asia/Shanghai");
echo "當前時間是 " . date("h:i:sa");
?>

通過 PHP mktime() 創建日期

date() 函數中可選的時間戳參數規定時間戳。如果您未規定時間戳,將使用當前日期和時間(正如上例中那樣)。

mktime() 函數返回日期的 Unix 時間戳。Unix 時間戳包含 Unix 紀元(1970 年 1 月 1 日 00:00:00 GMT)與指定時間之間的秒數。

語法

mktime(hour,minute,second,month,day,year)

下面的例子使用 mktime() 函數中的一系列參數來創建日期和時間:

實例

<?php
$d=mktime(9, 12, 31, 6, 10, 2015);
echo "創建日期是 " . date("Y-m-d h:i:sa", $d);
?>

通過 PHP strtotime() 用字符串來創建日期

PHP strtotime() 函數用于把人類可讀的字符串轉換為 Unix 時間。

語法

strtotime(time,now)

下面的例子通過 strtotime() 函數創建日期和時間:

實例

<?php
$d=strtotime("10:38pm April 15 2015");
echo "創建日期是 " . date("Y-m-d h:i:sa", $d);
?>

PHP 在將字符串轉換為日期這方面非常聰明,所以您能夠使用各種值:

實例

<?php
$d=strtotime("tomorrow");
echo date("Y-m-d h:i:sa", $d) . "<br>";

$d=strtotime("next Saturday");
echo date("Y-m-d h:i:sa", $d) . "<br>";

$d=strtotime("+3 Months");
echo date("Y-m-d h:i:sa", $d) . "<br>";
?>

不過,strtotime() 并不完美,所以請記得檢查放入其中的字符串。

更多日期實例

下例輸出下周六的日期:

實例

<?php
$startdate = strtotime("Saturday");
$enddate = strtotime("+6 weeks",$startdate);

while ($startdate < $enddate) {
  echo date("M d", $startdate),"<br>";
  $startdate = strtotime("+1 week", $startdate);
}
?>

下例輸出七月四日之前的天數:

實例

<?php
$d1=strtotime("December 31");
$d2=ceil(($d1-time())/60/60/24);
echo "距離十二月三十一日還有:" . $d2 ." 天。";
?>

完整的 PHP 日期參考手冊

如需所有日期函數的完整手冊,請訪問我們的 PHP 日期參考手冊。

該手冊包含每個函數的簡要描述以及使用示例。