網頁

2013年3月22日

PHP Time Functions

strtotime

int strtotime ( string $time [, int $now = time() ] )

The function expects to be given a string containing an English date format and will try to parse that format into a Unix timestamp (the number of seconds since January 1 1970 00:00:00 UTC), relative to the timestamp given in now, or the current time if now is not supplied.

date

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

Returns a string formatted according to the given format string using the given integer timestamp or the current time if no timestamp is given. In other words, timestamp is optional and defaults to the value of time().

Comment

在 php 中,時間的表示法主要有兩種,第一種是文字表示,也就是 human readable date formate,最常見的就是 "Y-m-d H:i:s";另外一種表示法為 unix timestamp,他是一個整數,從'1970-01-01 00:00:00'GMT開始的秒數。

在做時間處理的時候,最好是統一先將 human readable date formate 轉換成 unix timestamp 以後,在做時間上的加減乘除,比較大小,會來得比較準確簡單。

strtotime fucntion 將 human readable date formate 轉換成 unix timestamp,而 date 可以將 unix timestamp 轉換成 human readable date formate 。

Example

第一個例子是取得指定日期資料

$ThisDay = '2008-01-01';
$ThisDay = strtotime($ThisDay); // 將日期轉為Unix時間戳記
$CheckDay= date("Y-m-d",$ThisDay); // 將Unix時間戳記轉回日期
echo $CheckDay ;//會顯示 2008-01-01

第二個例子就可以發現這兩個 function 好用的地方

$ThisDay = '2008-01-01';
$ThisDay = strtotime($ThisDay); // 將日期轉為Unix時間戳記
$ThisDay = strtotime("+1 day",$ThisDay); // 計算$ThisDay的後一天
$CheckDay= date("Y-m-d",$ThisDay); // 將Unix時間戳記轉回日期
echo $CheckDay ;//會顯示 2008-01-02

第三個例子是一些好用簡單的文字表示法,幫助你計算指定的日期

$ThisDay = '2008-01-01';
$ThisDay = strtotime($ThisDay); // 將日期轉為Unix時間戳記
echo date("Y-m-d",strtotime("now",$ThisDay)), "\n";
//顯示2008-01-01
echo date("Y-m-d",strtotime("+1 day",$ThisDay)), "\n";
//顯示2008-01-02
echo date("Y-m-d",strtotime("+1 week",$ThisDay)), "\n";
//顯示2008-01-08
echo date("Y-m-d",strtotime("+1 week 2 days 4 hours 2 seconds",$ThisDay)), "\n";
//顯示2008-01-10
echo date("Y-m-d",strtotime("next Thursday",$ThisDay)), "\n";
//顯示2008-01-03
echo date("Y-m-d",strtotime("last Monday",$ThisDay)), "\n";
//顯示2007-12-31

沒有留言:

張貼留言