<?php
//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()).''<br />'';
echo ''date()函数输出的''.date(''Y-m-d H:i:s'',time()).''<br />'';
//检查日期:boolean checkdate(int month,int day,int year)
$d=''2010-2-31'';
echo $d.''是''.(checkdate(2,31,2010)?''有效日期!'':''无效日期!'').''<br />'';
//确定当月天数
echo ''本月有''.date(''t'',time()).''天<br />''; //28天
//确定任意给定的月份的天数
$d=''2008-02-01''; //闰年,或$d=''2008-02'';不需要输入天也可以
$d=strtotime($d);
echo ''2008年2月有''.date(''t'',$d).''天<br />''; //29天
$d=getdate();
echo ''<pre>'';
print_r($d);
echo ''</pre>'';
/*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'').''<br />'';
echo strtotime(''now'').''<br />''; // 等于time(),但strtotime使用范围更灵活,参下文.
echo ''测试还原昨天时间:''.date(''Y-m-d'',strtotime($lassdate)).''<br />''; //可以把字串型日期转成时间戳再用date转回原格式。
$x=strtotime($lassdate);
$y=mktime(0,0,0,''2'',''22'',''2010'');
echo ''strtotime()得到的昨天的时间戳是:''.$x.'',mktime()得到的昨天时间戳是:''.$y.(($x==$y)?'',二者相等'':'',二者不相同'').''<br />''; //相等。
#显示1970年前的日期
$time_int=strtotime(''1929-2-10'');
echo date("Y-m-d ",$time_int).''<br />''; //在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).''<br />''; //前天是:2010-02-21
#2、两个日期相差的天数。
$olddate = ''2010-02-11''; //如果要用mktime函数,则要用expl |