PHP教學-日期與時間函數
日期與時間函數之一
電腦的標準時間是以Unix紀元(格林威治時間1970年1月1日00:00:00)
開始計算,以本文撰寫時間(2012年2月24日下午3時49分3秒)為例:從Unix紀元開始到現在已經經過了1393224543秒,這個秒數在地球上的任何時區都是一樣的,範例如下:
開始計算,以本文撰寫時間(2012年2月24日下午3時49分3秒)為例:從Unix紀元開始到現在已經經過了1393224543秒,這個秒數在地球上的任何時區都是一樣的,範例如下:
<?php $time=gettimeofday(); //取得現在時間 echo $time[sec],"<br>"; //Unix紀元開始到現在的秒數 ?>
說明:
函數gettimeofday取得的時間為一組陣列,有四個陣列成員,分別如下:
一、鍵「sec」為「Unix紀元開始到現在的秒數」
二、鍵「usec」為「微秒(microseconds):百萬分之一秒」
三、鍵「minuteswest」為「與格林威志時間的時差(換算成分鐘數)」
四、鍵「dsttime」為「夏令時間修正類型」
函數gettimeofday取得的時間為一組陣列,有四個陣列成員,分別如下:
一、鍵「sec」為「Unix紀元開始到現在的秒數」
二、鍵「usec」為「微秒(microseconds):百萬分之一秒」
三、鍵「minuteswest」為「與格林威志時間的時差(換算成分鐘數)」
四、鍵「dsttime」為「夏令時間修正類型」
由於時間是不斷前進的,每一次重新整理時,輸出網頁的秒數會繼續往上加。
如果要將「Unix紀元開始到現在的秒數」轉換為本地時間,則要以函數date_default_timezone_set設定時區,再以時間函數date將時間格式化。以台北時間為例,範例如下:
<?php date_default_timezone_set("Asia/Taipei"); //設定時區 $TWtime=date("Y-n-j G:i:s",1393224543); //將時間格式化 echo $TWtime; ?>
說明:
一、設定時區時,變更函數date_default_timezone_set雙引號內的引數即可,底下是幾個較常見的地點:
檀香山:Pacific/Honolulu(時區:-10.00)
洛杉磯:America/Los_Angeles(時區:-8.00)
紐約:America/New_York(時區:-5.00)
台北:Asia/Taipei(時區:8.00)
首爾:Asia/Seoul(時區:9.00)
一 般在資料儲存時,文章、新聞…等,多會寫入日期、時間,最精確的時間標籤是「Unix紀元開始到現在的秒數」,例如某個英文討論區的一篇文章,發言人在 洛杉磯的下午4時,紐約人的感覺是下午7時發文的,而檀香山當時才下午2時。讓異地的會員設定不同的時區,就能使「同一篇文章,在不同時區的網友,觀看到 的發言時間在地化」。
一、設定時區時,變更函數date_default_timezone_set雙引號內的引數即可,底下是幾個較常見的地點:
檀香山:Pacific/Honolulu(時區:-10.00)
洛杉磯:America/Los_Angeles(時區:-8.00)
紐約:America/New_York(時區:-5.00)
台北:Asia/Taipei(時區:8.00)
首爾:Asia/Seoul(時區:9.00)
一 般在資料儲存時,文章、新聞…等,多會寫入日期、時間,最精確的時間標籤是「Unix紀元開始到現在的秒數」,例如某個英文討論區的一篇文章,發言人在 洛杉磯的下午4時,紐約人的感覺是下午7時發文的,而檀香山當時才下午2時。讓異地的會員設定不同的時區,就能使「同一篇文章,在不同時區的網友,觀看到 的發言時間在地化」。
二、函數date有兩個參數,第一個是「所要產生的時間格式」;第二個是引數,就是被轉換的時間戳,引數可有可無,沒有指定的引數,則默認為現在時間。
日期與時間函數之二
函數date有兩個參數,第一個是「所要產生的時間格式」;第二個是引數,就是被轉換的時間戳(Timestamp),引數可有可無,沒有指定的引數,則默認為現在時間。以下範例只設定第一個參數「時間格式」,讓函數date格式化現在時間,並且直接輸出於網頁。
<?php date_default_timezone_set("Asia/Taipei"); //設定時區 echo date("Y年m月j日 G時i分s秒"); //第1個參數是時間格式;第2個參數是引數,沒有引數時,默認為現在時間。 //date("Y-n-j G:i:s",1393224543); //逗點之後的數值為引數。 ?>
說明:
一、函數date的第一個參數「時間格式」只會將內定的符號轉換為代表時間的數值,本例中的「Y、m、 j、G、i、s」會轉換為數值,「年、月、日、 (空格)、時、分、秒」則保持原狀,所以本範例會輸出一個晚於「2014年02月25日 11時47分50秒」的日期時間。
一、函數date的第一個參數「時間格式」只會將內定的符號轉換為代表時間的數值,本例中的「Y、m、 j、G、i、s」會轉換為數值,「年、月、日、 (空格)、時、分、秒」則保持原狀,所以本範例會輸出一個晚於「2014年02月25日 11時47分50秒」的日期時間。
二、函數date內定的符號,下表列出最常用的部分:
年 | Y:4位數字表示的年份,例:2014。 y:2位數字表示的年份,例:14。 |
月 | F:月份的英文,例:January。 M:月份的英文縮寫,例:Jan。 n:數字表示的月份,沒有前導零,1-12。 m:數字表示的月份,有前導零,01-12。 |
日 | j:月份中的第幾天,沒有前導零,1-31。 d:月份中的第幾天,有前導零,01-31。 z:一年中的第幾天,0-365。 |
時 | g:12小時制,沒有前導零,1-12。 G:24小時制,沒有前導零,0-23。 h:12小時制,有前導零,01-12。 H:24小時制,有前導零,00-23。 |
分 | i:有前導零,00-59。 |
秒 | s:有前導零,00-59。 |
星期 | W:一年中的第幾週,每週從星期一開始,例:28。 l:星期幾的英文,例:Sunday。 D:星期幾的英文縮寫,例:Sun。 w:星期幾的數字,0-6(星期日-星期六)。 |
incaAsubschi_Little Rock Brody Fokused https://wakelet.com/wake/AkbikCcxPcTmeH0lhRtZf
回覆刪除gritapbrownez