# 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 投票
- 免责声明