[TOC]
# UNIX時間戳
自從 Unix 紀元(格林威治時間 1970 年 1 月 1 日 00:00:00)到當前時間的秒數 .
相關函數:
* `time( )`: 函數返回一個當前系統的時間戳
* `mktime( )`:?取得一個日期的 Unix 時間戳
```
格式:int mktime(時[,分[,秒[,月[,日[,年[,is_dst區]]]]]]);
```
> 注意:is_dst參數表示是否為夏時制,PHP5.10后此參數已廢除。
* `strtotime( )`:將任何英文文本的日期時間描述解析為 Unix 時間戳
```
格式:int strtotime ( string $time [, int $now ] )
```
實例:
```
<?php
echo date("Y-m-d", strtotime("now")); //輸出: 2012-04-05
echo date("Y-m-d", strtotime("8 may 2012")); //輸出: 2012-05-08
echo date("Y-m-d", strtotime("+1 day")); //輸出: 2012-04-06
echo date("Y-m-d", strtotime("last monday")); //輸出: 2012-04-02
$now = strtotime("now"); //當前時間
$endtime = strtotime("2017-08-18 08:08:08"); //設定畢業時間,轉成時間戳
$second = $endtime - $now; //獲取畢業時間到現在時間的時間戳(秒數)
$year = floor($second/3600/24/365); //從這個時間戳中換算出年頭數
$temp = $second - $year*365*24*3600;//從時間戳中去掉整年的秒數,就剩下月份的秒數
$month = floor($temp/3600/24/30); //從這個時間戳中換算出月數
$temp = $temp - $month*30*24*3600; //從時間戳中去掉整月的秒數,就剩下天的秒數
$day = floor($temp/3600/24); //從這個時間戳中換算出剩余的天數
$temp = $temp - $day*3600*24; //從時間戳中去掉整天的秒數,就剩下小時的秒數
$hour = floor($temp/3600); //從這個時間戳中換算出剩余的小時數
$temp = $temp - $hour*3600; //從時間戳中去掉整小時的秒數,就剩下分的秒數
$minute = floor($temp/60); //從這個時間戳中換算出剩余的分數
$second1 = $temp - $minute*60; //最后就只有剩余的秒數了
echo "距離指定日期還有{$year}年{$month}月{$day}天{$hour}小時{$minute}分{$second1}秒";
?>
```
# 在PHP中獲取日期和時間
* `getdate`?--?取得日期/時間信息
```
格式:array getdate ( [int timestamp] )
```
返回一個根據 timestamp 得出的包含有日期信息的結合數組。如果沒有給出時間戳則認為是當前本地時間。數組中的單元如下:

# 日期和時間的格式化輸出
* `date`?--?格式化一個本地時間/日期
```
格式:string date ( string format [, int timestamp] )
```
返回將整數 timestamp 按照給定的格式字串而產生的字符串。如果沒有給出時間戳則使用本地當前時間。換句話說,timestamp 是可選的,默認值為 time()(當前時間戳)。
例如:
```
echo date(“Y年m月d日 H:i:s”); //2010年10月28日 14:22:28
```
常用參數:
```
Y:四位數年
m:月01-12
n:月1-12
d:天01-31
j:天1-31
H:時24時制
h:小時12制
i:分鐘00-59
s:秒00-59
w:星期幾0-6
A:上午AM或下午PM
a:上午am或下午pm。
```
# 修改PHP的默認時區
修改PHP的默認時區有兩種方式:
* 修php.ini配置文件:
date.timezone = Etc/GMT+8
* date_default_timezone_set( ): --?設定用于一個腳本中所有日期時間函數的默認時區 。
如:date_default_timezone_set(“PRC”); //中國時區。
* date_default_timezone_get( ): -- 獲取當前時區
# 使用微妙計算PHP腳本執行時間
* `microtime`?--?返回當前 Unix 時間戳和微秒數
```
格式:mixed microtime ( [bool get_as_float] )
```
如果調用時不帶可選參數,本函數以 "msec sec" 的格式返回一個字符串,其中 sec 是自 Unix 紀元(0:00:00 January 1, 1970 GMT)起到現在的秒數,msec 是微秒部分。字符串的兩部分都是以秒為單位返回的。
如果給出了 get_as_float 參數并且其值等價于 TRUE,microtime() 將返回一個浮點數。
> Have a try
1. 代碼:輸出“2011-5-19 14:07”這個日期的時間戳。
2. 代碼:將“1305786147”時間戳格式化成”年-月-日 時:分:秒”后輸出。
3. 代碼:求出”2011-10-01”是星期幾?
4. 代碼:輸出兩天前這個時候的日期(年-月-日 時:分:秒);
5. 代碼:計算并輸出1000000次字符串比較和數字比較的耗時。
6. 寫一個萬年歷試一試吧
- 前言
- Ⅰ.PHP基礎知識
- 1.PHP基本語法(一)
- 2.PHP基本語法(二)
- 3.流程控制結構
- 4.PHP函數
- 5.數組
- 6.字符串
- 7.PHP正則表達式
- 8.PHP的日期和時間
- 9.GD庫圖像處理
- 10.文件處理系統
- 11.文件上傳和下載
- 12.數據庫之MySQL(概述)
- Ⅱ.ThinkPHP5入門實踐
- 一、先看到頁面
- 1.1只展示頁面
- 1.2給視圖傳遞數據
- 1.3使用公共模板
- 1.4使用模板布局
- 二、簡單的數據庫操作
- (1)查
- (2)增
- (3)改
- (4)刪
- (5)鏈式操作
- 三、初級-階段性綜合應用
- (1)注冊
- (2)登錄
- 四、各種基本操作
- 1.操作Session
- 2.操作Cookie
- 3.文件上傳
- 五、富文本編輯器
- 集成wangEditor
- 集成UEditor
- 六、驗證碼
- 圖片驗證碼
- Ⅲ.常用類庫的使用
- 一、PHPExcel表格導入
- 二、PHPExcel表格導出
- 三、阿里大于短信驗證碼
- 四、時間戳操作Time
- 五、郵件發送
- 六、PHP操作Python
- Ⅳ.實例講解
- 一、病房管理系統
- 寫在前面
- 1.引導頁
- 2.公共模板
- 3.登錄
- 4.功能引導頁集合
- 5.修改密碼
- 6.員工信息注冊
- 7.員工信息更新
- 8.員工信息刪除
- 9.病人信息注冊
- 10.病人信息更新
- 11.出院手續辦理
- 12.病人信息刪除
- 13.科室信息查詢
- 14.醫護信息查詢
- 15.病房信息查詢
- 16.病歷信息查詢
- 加群驗證
- 必看推薦閱讀【不斷更新】