phpcms php格式化 時間戳

用PHPCMS V9 建站時,常常會用到時間標籤,它是通用標籤調用-日期時間格式化,適用全站。php

 

1、日期時間格式化顯示:apache

 

a\標準型:{date('Y-m-d H:i:s', $rs['inputtime'])} 輸出爲:2013-01-31 13:15:10服務器

 

b\拆分型:{date('Y',$rs[inputtime])}年{date('m',$rs[inputtime])}月{date('d',$rs[inputtime])}日 輸出爲:2013年01月31日函數

 

c\擴展型:spa

 

{date('Y',$inputtime);} 4位年份 輸出爲:2013 或 2014unix

 

{date('y',$inputtime);} 2位年份 輸出爲:10 或 11code

 

{date('F',$inputtime);} 英文月份全稱 輸出爲:January 到 Decemberblog

 

{date('M',$inputtime); } 英文月份縮寫 輸出爲:Jan 到 Decip

 

{date('m',$inputtime);} 前導零數字月份 輸出爲:01 到 12ci

 

{date('n',$inputtime); } 數字月份 輸出爲:1 到 12

 

{date('d',$inputtime);} 前導零日期 輸出爲:01 到 31

 

{date('j',$inputtime);} 日期 輸出爲:1 到 31

 

{date('l',$inputtime);} 英文星期全稱 輸出爲:Sunday 到 Saturday

 

{date('D',$inputtime);} 英文星期縮寫 輸出爲:Mon 到 Sun

 

{date('N',$inputtime);} 格式數字星期 輸出爲:1 到 7

 

{date('Y-m-d H:i:s',$rs[inputtime]+30*60)} 在獲取文章時間後加一段時間

2、PHP時間戳函數獲取指定日期的unix時間戳 

1
2
3
<?php
echo strtotime ( "2017-6-27" );
?>

結果:1498514400

返回2017年6月27日0點0分0秒時間戳

一、PHP時間戳函數獲取英文文本日期時間 示例以下:

便於比較,使用date將當時間戳與指定時間戳轉換成系統時間

(1)打印明天此時的時間戳strtotime(」+1 day」)

當前時間:echo date(」Y-m-d H:i:s」,time()) 結果:2017-6-27 09:40:25

指定時間:echo date(」Y-m-d H:i:s」,strtotime(」+1 day」)) 結果:2017-6-27 09:40:25

(2)打印昨天此時的時間戳strtotime(」-1 day」)

當前時間:echo date(」Y-m-d H:i:s」,time()) 結果:2017-6-27 09:40:25

指定時間:echo date(」Y-m-d H:i:s」,strtotime(」-1 day」)) 結果:2017-6-27 09:40:25

(3)打印下個星期此時的時間戳strtotime(」+1 week」)

當前時間:echo date(」Y-m-d H:i:s」,time()) 結果:2017-6-27 09:40:25

指定時間:echo date(」Y-m-d H:i:s」,strtotime(」+1 week」)) 結果:2017-6-27 09:40:25

(4)打印上個星期此時的時間戳strtotime(」-1 week」)

當前時間:echo date(」Y-m-d H:i:s」,time()) 結果:2017-6-27 09:40:25

指定時間:echo date(」Y-m-d H:i:s」,strtotime(」-1 week」)) 結果:2017-6-27 09:40:25

(5)打印指定下星期幾的時間戳strtotime(」next Thursday」)

當前時間:echo date(」Y-m-d H:i:s」,time()) 結果:2017-6-27 09:40:25

指定時間:echo date(」Y-m-d H:i:s」,strtotime(」next Thursday」)) 結果:2017-6-27 00:00:00

(6)打印指定上星期幾的時間戳strtotime(」last Thursday」)

當前時間:echo date(」Y-m-d H:i:s」,time()) 結果:2009-01-22 09:40:25

指定時間:echo date(」Y-m-d H:i:s」,strtotime(」last Thursday」)) 結果:2017-6-27 00:00:00
以上PHP時間戳函數示例可知,strtotime能將任何英文文本的日期時間描述解析爲Unix時間戳,咱們結合mktime()或date()格式化日期時間獲取指定的時間戳,實現所須要的日期時間。
示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
 
//時間戳轉日期
$date_time_array = getdate (1297845628); //1311177600  1316865566
$hours = $date_time_array [ "hours" ];
$minutes = $date_time_array [ "minutes" ];
$seconds = $date_time_array [ "seconds" ];
$month = $date_time_array [ "mon" ];
$day = $date_time_array [ "mday" ];
$year = $date_time_array [ "year" ];
  
echo "year:$year\nmonth:$month\nday:$day\nhour:$hours\nminutes:$minutes\nseconds:$seconds\n" ;
  
//正常日期轉時間戳
echo mktime (0, 0, 0, 9, 18, 2011) . "\n" ;
echo mktime (0, 0, 0, 9, 25, 2011) . "\n" ;
  
 
//能夠對此進行格式化
echo "time()顯示年月日時分秒:" . date ( "Y-m-d H:i:s" , time()) . "\n" ;
//這樣連時,分秒一塊兒顯示
echo "time()只顯示年月日:" . date ( "Y-m-d " , time()) . "\n" ; //只年示年月日
  
echo "時間戳格式化:" . date ( "Y-m-d H:i:s" , 1297845628) . "\n" ; //直接使用時間戳
 
//把正常日期轉成時間戳了,這裏若是有時分秒也是同理,
 
$year =((int) substr ( "2008-12-04" ,0,4)); //取得年份
 
$month =((int) substr ( "2008-12-04" ,5,2)); //取得月份
 
$day =((int) substr ( "2008-12-04" ,8,2)); //取得幾號
 
echo mktime (0,0,0, $month , $day , $year );
  
 
?>

須要注意的部分
<一>、PHP時間大的來分有兩種,一是時間戳類型(1228348800),二是正常日期格式(2008-12-4)


<二>、php5.1以上時間戳會與實際時間相差8小時,解決辦法以下

一、最簡單的方法就是不要用php5.1以上的版本--顯然這是不可取的方法!!!二、修改php.ini。打開php.ini查找date.timezone 去掉前面的分號= 後面加Asia/Shanghai,重啓apache服務器便可--缺點就是若是程序放到別人的服務器上,不能修改php.ini,那就奈何不得了。三、在程序中添加時間的初始化的語句的 即:「date_default_timezone_set("Asia/Shanghai"); 」時區標識符,大陸內地可用的值是:PRC,Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次爲中國,重慶,上海,烏魯木齊) ,Etc/GMT-8,Asia/Harbin港臺地區可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次爲澳門,香港,臺北)還有新加坡:Asia/Singapore

相關文章
相關標籤/搜索