PHP 日期

PHP date() 函數用於格式化時間/日期。

PHP 時間戳

UNIX 時間戳記(timestamp)是PHP 中關於時間日期一個很重要的概念,它表示從1970年1月1日00: 00:00 到目前時間的秒數總和。

PHP提供了內建函數 time() 來取得伺服器目前時間的時間戳記。

範例:

<?php
  echo time();
?>

上面的範例運行後得到的是一串類似這樣的數字:1379115455

有效的時間戳典型範圍是格林威治時間1901年12月13日20:45:54 到2038年1月19日03:14:07(此範圍符合32 位元有符號整數的最小值和最大值)。 不過從 5.1.0 起,已經克服了年份的範圍只能是 1901 到 2038 之間的問題。

提示

1. time() 得到的總是當前的時間戳,所以是不固定的值

2. 如果時間戳為負數,則為從1970年1月1日00:00:00往前推

日期轉換為時間戳

PHP 提供了函數可以方便的將各種形式的日期轉換為時間戳,該類別函數主要是:

• strtotime():將任何英文文字的日期時間描述解析為時間戳記。

• mktime():從日期取得時間戳記。

strtotime() 函數用於將英文文字字串表示的日期轉換為時間戳,為 date() 的反函數,成功傳回時間戳,否則傳回 FALSE 。

語法:

int strtotime ( string time [, int now] )

參數time 為被解析的字串,是根據GNU 日期輸入格式表示的日期。

<?php
  echo strtotime("2009-10-21 16:00:10");        //输出类似 1256112010
  echo strtotime("10 September 2008");          //输出类似 1220976000
  echo strtotime("+1 day"), "<br />";           //输出明天此时的时间戳
?>

mktime() 函數用於從日期取得時間戳,成功傳回時間戳,否則傳回 FALSE 。

語法:

int mktime(時, 分, 秒, 月, 日, 年)

範例:

<?php
  echo mktime(21, 50, 55, 07, 14, 2010);   //输出“1279115455”
?>

 參數可以從右向左省略,任何省略的參數會被設定成本地日期和時間的目前值。

mktime() 在做日期計算和驗證方面很有用,它會自動計算超出範圍的輸入的正確值。例如下面範例輸出的都是2008-01-01:

<?php
 echo date("Y-m-d", mktime(0, 0, 0, 12, 32, 2007));
 echo date("Y-m-d", mktime(0, 0, 0, 13, 1, 2007));
?>

 下個月的最後一天:

任何給定月份的最後一天都可以被表示為下個月的第"0" 天,而不是-1 天,如下面的例子:

<?php
  $lastday = mktime(0, 0, 0, 3, 0, 2008);
  echo strftime("2008年最后一天是:%d", $lastday);
?>

 瀏覽器輸出:

2008年最後一天是:29

PHP date() 函數

PHP date() 函數可把時間戳格式化為可讀性較好的日期和時間。

時間戳記是一個字元序列,表示一定的事件發生的日期/時間。

語法

string date ( string $format [, int $timestamp ] )

參數                  描述

format               必要。規定時間戳記的格式。    

timestamp         選購。規定時間戳。預設是當前的日期和時間。 

   PHP Date() - 格式化日期

date() 函數的第一個必要參數 format 規定如何格式化日期/時間。

這裡列出了一些可用的字元:

d - 代表月中的天(01 - 31)

m - 代表月(01 - 12)

Y - 代表年(四位數)

如需了解 format 參數中可用的所有字元列表,請查閱我們的PHP Date 參考手冊, date() 函數。

可以在字母之間插入其他字符,例如"/"、"." 或"-",這樣就可以增加附加格式了:

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

上面程式碼的輸出如下所示:

       2016/05/11<br>
       2016.05.11<br>##卷##後面還有幾個參數:
h 的英文為:hour 代表小時

i的英文為:minute 代表分鐘

s的英文為:second 代表秒

#寫全了就是:

<?php
  //就可以显示出来当前的时间了哟。
  echo date('Y-m-d H:i:s');
?>

格式字串可以辨識以下 format 參數的字串

##format字元        

說明        

返回數值範例

日                        ---                ---    

d    月份中的第幾天,有前導零的2 位數字         01 到 31    

D    星期中的第幾天,文字表示,3 個字母          Mon  Sun 導              1 到 31    
l("L"的小寫字母)    星期幾,完整的文字格式   Sunday 到 Saturday    

N    ISO-8601 格式數字表示的星期中的第幾天(PHP 5.1.0 新加) 1(表示星期一)到 7(表示星期日)    

S    每月天數後面的英文後綴,2 個字元                st,nd,rd 或 th。可以和 j 一起用   

w    星期中的第幾天,數字表示                          0(表示星期日)到星期日 6(表示星期六#                                     0 至 365    

星期   ---    ---    

W    ISO-8601 格式年份中的第幾週,每週從星期一開始(PHP 4.1.0 新加的)   例如:42(當年的第42 週)    

月   ---    ---    

F    月份,完整的文字格式,           ecember    

m    數字表示的月份,有前導零                       01 到 12    

M    三字母為   

n    數位表示的月份,沒有前導零                    1 到 12    

t    給定月份所應有的天數                             28 到 31    

                                                        8601 格式年份數字。這和 Y 的值相同,只除瞭如果 ISO 的星期數(W)屬於前一年或下一年,則用那一年。 (PHP 5.1.0 新加)    Examples: 1999 or 2003    

Y    4 位數位完整表示的年份           

y    2 位數表示的年份                                 

時間   ---    ---    

#

a    小寫的上午和下午值                                  am 或 pm    

A    大寫的上午和下午值                                  AM 或 PM    

B    Swatch Internet 標準時                            000 到 999    

g    小時,12 小時格式,無前導零                 1 到 12    

G    小時,24 小時格式,無前導 小時,12 小時格式,有前導零                   01 到 12    

H    小時,24 小時格式,有前導零                   00 到 23    

##                00 到 59>    

s    秒數,有前導零        00 到59>    

u    毫秒(PHP 5.2.2 新加)。要注意的是 date()函數總是回傳 000000 因為它只接受 integer 參數,而 DateTime::format() 才支援毫秒。 範例: 654321    

時區   ---    ---    

e    時區識別(PHP 5.1.0 新加) 對為夏令時   若是夏令時為 1,否則為 0    

O    與格林威治時間相差的小時數   例如:+0200    

#P 對  與休格林威治(GMT)的差異點格林威治標準,小時和分鐘之間有冒號分隔(PHP 5.1.3 新加)    例如:+02:00    

T    本機所在的時區   例如:EST,MDT(【者註」在Windows 下為完整文字格式,例如"Eastern Standard Time",中文版會顯示"中國標準時間")。    

Z    時差偏移量的秒數。 UTC 西邊的時區偏移總是負的,UTC 東邊的時區偏移量總是正的。    -43200 到 43200    

#

完整的日期/時間   ---    ---    

c    ISO 8601 格式的日期(PHP 5 新加)    2004-02-12T15:19:21+0:00 #r    RFC 822 格式的日期   例如:Thu, 21 Dec 2000 16:01:07 +0200    

U    從Unix 紀元(January 1 197:00:0 )    

完整的PHP Date 參考手冊

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

此參考手冊提供了每個函數的簡要描述和應用實例!

繼續學習
||
<?php echo date('Y-m-d H:i:s'); ?>