//GB2312的Encode
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
/*重點瞭解strtotime()函數
1、strftime比time()好用,可以直接把常用的’2010-02-03‘轉成時間戳記。
2、date()可以顯示1970年前的時間。而不必用負數做參數2
3、日期計算可以用時間戳記來中轉。計算兩個日期相差的天數,可以取得相差的時間戳記後除以“24小時*60分*60”秒來得到,但用strtotime()更簡潔、
4、瞭解用PEAR建立日曆。這裡略去。
知識點:網路上有關於date(Y-m-d,-800)來計算1970年前的時間,但WINDOW系統不支援負值,因此總會返回1970-1-1子夜。
*/
#PHP5必須先設定預設區。
date_default_timezone_set(ETC/GMT-8);
$nowdate=2010-02-23;
$lassdate = 2010-02-22;
echo strftime()函數輸出的.strftime(%Y-%m-%d %H:%M:%S,time()).
;
echo date()函數輸出的.date(Y-m-d H:i:s,time()).
;
//檢查日期:boolean checkdate(int month,int day,int year)
$d=2010-2-31;
echo $d.是.(checkdate(2,31,2010)?有效日期!:無效日期!).
;
//確定當月天數
echo 本月有.date(t,time()).天
; //28天
//確定任意給定的月份的天數
$d=2008-02-01; //閏年,或$d=2008-02;不需要輸入天也可以
$d=strtotime($d);
echo 2008年2月有.date(t,$d).天
; //29天
$d=getdate();
echo
;
print_r($d);
echo
;
/*Array(
[seconds] => 42
[minutes] => 16
[hours] => 13
[mday] => 23
[wday] => 2
[mon] => 2
[year] => 2010
[yday] => 53
[weekday] => Tuesday
[month] => February
[0] => 1266902202
)
*/
//echo date("Y-m-d H:i:s",-8000);
//setlocale(LC_ALL,zh_CN.gb2312); //setlocale函數對下面的沒有影響。
#測試strftime,mktime函數。
echo strftime(今天是:%Y-%m-%d %H:%M:%S).
;
echo strtotime(now).
; // 等於time(),但strtotime使用範圍更靈活,參下文.
echo 測試還原昨天時間:.date(Y-m-d,strtotime($lassdate)).
; //可以把字串型日期轉成時間戳記再用date轉回原格式。
$x=strtotime($lassdate);
$y=mktime(0,0,0,2,22,2010);
echo strtotime()得到的昨天的時間戳記是:.$x.,mktime()得到的昨天時間戳記是:.$y.(($x==$y)?,二者相等:,二者不相同).
; //相等。
#顯示1970年前的日期
$time_int=strtotime(1929-2-10);
echo date("Y-m-d ",$time_int).
; //在MYSQL中與date()函數相同功能的是date_format(1996-02-05 11:07:45,%Y-%m-%d)或for_format()
/*時間運算:
*請使用方法三。其它方法只供參考。 *
*/
#1、今天是23號,獲得前天的時間,即減兩天。
$predate=2;
$pretime=$predate*24*60*60; //2天的時間戳記。
echo date(前天是:Y-m-d,time()-$pretime).
; //前天是:2010-02-21
#2、兩個日期相差的天數。
$olddate = 2010-02-11; //如果要用mktime函數,則要用explode拆解日期。
$oldtime = strtotime($olddate);
$passtime = time()-$oldtime; //經過的時間戳記。
echo 你在網上泡了.floor($passtime/(24*60*60)).天了.
; //12天。
#3、去年這個時侯。使用時要考慮閏年:平年365天,閏年366天。
#方法一:用減去全年天數的時間戳記來擷取。
$yDate=1;
$yDate_Y=date(Y,time())-1; //年份-1,即去年
$yDateYMD="$yDate_Y-01-01";
$yYMD=strtotime($yDateYMD); //去年的1月1號時間戳記。
$d=date(L,$yYMD)?366:365; //是否是閏年
$yYearTime=$d*24*60*60;
$yYear=date(Y-m-d,time()-$yYearTime);
echo "去年的今天:$yYear
"; //2009-02-23
#方法二:用直接截取當前日期的年份減一,但不嚴謹,沒有考慮到閏年。
#計算60年前的今天。忽略當中經過的閏年。
$yDate_Y=$yDate_Y-59;
$md=explode(-,date(Y-m-d));
$yYMD="$yDate_Y-{$md[1]}-{$md[2]}";
echo "60年前的今天:$yYMD
"; //1950-02-23
#方法三:用strtotime()和GNU日期文法---------推薦!
//3天后; //目前時間為2010-02-23
$d=strtotime(3 days);
echo 3天后.date(Y-m-d,$d)."
";
//3天前:
$d=strtotime(-3 days);
echo 3天前.date(Y-m-d,$d)."
"; //2010-02-20
//一個月前:
$d=strtotime(-1 months);
echo 一個月前.date(Y-m-d,$d)."
"; //2010-01-23
//2個月後:
$d=strtotime(2 months);
echo 二個月後.date(Y-m-d,$d)."
"; //2010-04-23
//1年前:
$d=strtotime(-1 years);
echo 1年前.date(Y-m-d,$d)."
"; //2009-02-23
//2小時前:
$d=strtotime(-2 hours);
echo 目前:.date(Y-m-d H:i:s,time()).,2小時前.date(Y-m-d H:i:s,$d)."
"; //目前:2010-02-23 13:38:49,2小時前2010-02-23 11:38:49
#DateTime建構函式:object DateTime([string $time [,dateTimeZone $timezone])
$date = new DateTime(2010-02-23 12:26:36);
echo $date->format(Y-m-d H:i:s)."
"; //和date()函數相同。2010-02-23 12:26:36
//重設時間:
//1、重設日期: boolean setDate(int year,int month,int day)
//2、重設時間: boolean setDate(int hour,int minute[,int second])
$date->setDate(2010,2,28);
echo $date->format(Y-m-d H:i:s)."
"; //2010-02-28 12:26:36
//日期計算,相當於上面的strtotime()
$date->modify("+7 hours");
echo $date->format(Y-m-d H:i:s)."
"; //2010-02-28 19:26:36
$date->modify("3 days");
echo $date->format(Y-m-d H:i:s)."
"; //2010-03-03 19:26:36 //從上面被改過的28號開始
/*PHP5在WIN不支援money_format函數?
setlocale(LC_MONETARY,zh_CN);
echo money_format("%i",786.56);//?Fatal error: Call to undefined function money_format()
*/
?>
http://www.bkjia.com/PHPjc/508431.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/508431.htmlTechArticle?php //GB2312的Encode header(Cache-Control: no-store, no-cache, must-revalidate); header(Cache-Control: post-check=0, pre-check=0, false); /*重點瞭解strtotime()函數 1、strf...