# PHP 日期和時間
**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 日期參考手冊](/php/php_ref_date.asp "PHP Date / Time 函數")。
該手冊包含每個函數的簡要描述以及使用示例。
- PHP 基礎
- PHP 簡介
- PHP 安裝
- PHP 語法
- PHP 變量
- PHP 5 echo 和 print 語句
- PHP 數據類型
- PHP 字符串函數
- PHP 常量
- PHP 運算符
- PHP if...else...elseif 語句
- PHP Switch 語句
- PHP while 循環
- PHP for 循環
- PHP 函數
- PHP 數組
- PHP 數組排序
- PHP 全局變量 - 超全局變量
- PHP 魔術變量
- PHP 命名空間(namespace)
- PHP 表單
- PHP 表單處理
- PHP 表單驗證
- PHP 表單驗證 - 必填字段
- PHP 表單驗證 - 驗證 E-mail 和 URL
- PHP 表單驗證 - 完成表單實例
- PHP $_GET 變量
- PHP $_POST 變量
- PHP 高級
- PHP 多維數組
- PHP 日期和時間
- PHP Include 文件
- PHP 文件處理
- PHP 文件打開/讀取/讀取
- PHP 文件創建/寫入
- PHP 文件上傳
- PHP Cookies
- PHP Sessions
- PHP 發送電子郵件
- PHP 安全的電子郵件
- PHP 錯誤處理
- PHP 異常處理
- PHP 過濾器(Filter)
- PHP JSON
- PHP 數據庫
- PHP MySQL 簡介
- PHP 連接 MySQL
- PHP MySQL 創建數據庫
- PHP 創建 MySQL 表
- PHP MySQL 插入數據
- PHP MySQL 插入多條數據
- PHP MySQL 預處理語句
- PHP MySQL 讀取數據
- PHP MySQL Where 子句
- PHP MySQL Order By 關鍵詞
- PHP MySQL Update
- PHP MySQL Delete
- PHP 數據庫 ODBC
- PHP XML
- PHP XML Expat 解析器
- PHP XML DOM
- PHP SimpleXML
- PHP AJAX
- AJAX 簡介
- AJAX XMLHttpRequest
- PHP 和 AJAX 請求
- PHP 和 AJAX XML 實例
- PHP 和 AJAX MySQL 數據庫實例
- PHP 和 AJAX responseXML 實例
- PHP 和 AJAX Live Search
- PHP 和 AJAX RSS 閱讀器
- PHP 和 AJAX 投票
- 免責聲明