|
PHP日期时间用法大全
1.一般在PHP初始化文件头部,首先要设置正确的时区,否则主机默认时区不对的话,造成PHP代码中用到的日期时间都不对。
- echo date_default_timezone_get();//获取主机默认时区
- date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai' 亚洲/上海 或者:
- date_default_timezone_set('PRC');//其中PRC为“中华人民共和国”
- date_default_timezone_set('Asia/Shanghai');
- $time=date("Y-m-d H:i:s");
- $time=StrToTime($time);
2.获取本地日期时间:
- echodate('Y:m:d h:i:s'); //2013:01:19 01:10:43
格式:string date ( string format [, int timestamp] )
还有一些格式:
format字符说明返回值例子日------d月份中的第几天,有前导零的 2 位数字01 到 31D星期中的第几天,文本表示,3 个字母Mon 到 Sunj月份中的第几天,没有前导零1 到 31l(“L”的小写字母)星期几,完整的文本格式Sunday 到 SaturdayNISO-8601 格式数字表示的星期中的第几天(PHP 5.1.0 新加)1(表示星期一)到 7(表示星期天)S每月天数后面的英文后缀,2 个字符st,nd,rd 或者 th。可以和 j 一起用w星期中的第几天,数字表示0(表示星期天)到 6(表示星期六)z年份中的第几天0 到 366星期------WISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的)例如:42(当年的第 42 周)月------F月份,完整的文本格式,例如 January 或者 MarchJanuary 到 Decemberm数字表示的月份,有前导零01 到 12M三个字母缩写表示的月份Jan 到 Decn数字表示的月份,没有前导零1 到 12t给定月份所应有的天数28 到 31年------L是否为闰年如果是闰年为 1,否则为 0oISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 5.1.0 新加)Examples: 1999 or 2003Y4 位数字完整表示的年份例如:1999 或 2003y2 位数字表示的年份例如:99 或 03时间------a小写的上午和下午值am 或 pmA大写的上午和下午值AM 或 PMBSwatch Internet 标准时000 到 999g小时,12 小时格式,没有前导零1 到 12G小时,24 小时格式,没有前导零0 到 23h小时,12 小时格式,有前导零01 到 12H小时,24 小时格式,有前导零00 到 23i有前导零的分钟数00 到 59>s秒数,有前导零00 到 59>时区------e时区标识(PHP 5.1.0 新加)例如:UTC,GMT,Atlantic/AzoresI是否为夏令时如果是夏令时为 1,否则为 0O与格林威治时间相差的小时数例如:+0200T本机所在的时区例如:EST,MDT(【译者注】在 Windows 下为完整文本格式,例如“Eastern Standard Time”,中文版会显示“中国标准时间”)。Z时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。-43200 到 43200完整的日期/时间------cISO 8601 格式的日期(PHP 5 新加)2004-02-12T15:19:21+00:00rRFC 822 格式的日期例如:Thu, 21 Dec 2000 16:01:07 +0200U从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数参见 time()
2.getdate()这个函数返回一个关联数组:
Array
(
[seconds] => 40
[minutes] => 58
[hours] => 21
[mday] => 17
[wday] => 2
[mon] => 6
[year] => 2003
[yday] => 167
[weekday] => Tuesday
[month] => June
[0] => 1055901520
)
3.idate ( string format [, int timestamp] ),format只接受一个字符:
format 字符说明BSwatch Beat/Internet Timed月份中的第几天h小时(12 小时格式)H小时(24 小时格式)i分钟I如果启用夏时制则返回 1,否则返回 0L如果是闰年则返回 1,否则返回 0m月份的数字s秒数t本月的总天数U自 Unix 纪元(January 1 1970 00:00:00 GMT)起的秒数――这和 time() 作用相同w星期中的第几天(星期天是 0)WISO-8601 格式年份中的第几个星期,每星期从星期一开始y年份(1 或 2 位数字――见下面说明)Y年份(4 位数字)z年份中的第几天Z以秒为单位的时区偏移量
4.localtime(time(), true); 返回一个关联数组,含义如下:
Array
(
[tm_sec] => 24
[tm_min] => 3
[tm_hour] => 19
[tm_mday] => 3
[tm_mon] => 3
[tm_year] => 105
[tm_wday] => 0
[tm_yday] => 92
[tm_isdst] => 1
)
"tm_sec" - 秒数
"tm_min" - 分钟数
"tm_hour" - 小时
"tm_mday" - 月份中的第几日
"tm_mon" - 年份中的第几个月,从 0 开始表示一月
"tm_year" - 年份,从 1900 开始
"tm_wday" - 星期中的第几天
"tm_yday" - 一年中的第几天
"tm_isdst" - 夏令时当前是否生效
注: 月份从 0(一月)到 11(十二月),星期数从 0(星期天)到 6(星期六)。
5.microtime -- 返回当前 Unix 时间戳和微秒数,返回格式:msec sec
6.strftime -- 根据区域设置格式化本地时间/日期,这个参数比较多,详情见手册。经常和另一个函数同时出现:strptime -- 解析由 strftime() 生成的日期/时间
- $format = '%d/%m/%Y %H:%M:%S';
- $strf = strftime($format);
-
- echo"$strf\n"; //03/10/2004 15:54:19
6.mktime -- 取得一个日期的 Unix 时间戳
参数int hour , int minute , int second , int month , int day , int year
当你要表示某个月的最后一天,可以用下个月的第0天表示(也可以用负数):
- $lastday = mktime(0, 0, 0, 3, 0, 2000);
- echostrftime("Last day in Feb 2000 is: %d", $lastday);
7.time -- 返回当前的 Unix 时间戳
这个时间戳,一般我们作为参数,用作前面的函数,比如date()
- $nextWeek = time() + (7 * 24 * 60 * 60); // 7天
- echo'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
二、时间日期转换
1、checkdate(month,day,year)函数验证指定的值合法性,该函数返回 true,否则返回 false。
2、日期转换成时间戳
$time=date("Y-m-d H:i:s");
$time=StrToTime($time);
3、时间戳转换成日期
$time="1366704555";
$time=date("Y-m-d H:i:s",$time);
4、获取指定日期
5、php获取微博(博文、动态)发表于多久时间前
另一方法:http://xuqin.blog.运维网.com/5183168/1264254
6、php计算两日期剩余(间隔)时间天数
输出:
Array
(
[extends] => 29
[weekly] => 4
[daily] => 1
)
共60天
年1月4周1天
7、获取两日期差值数组
方法一:
输出:
Array
(
[0] => 2013-04-26
[1] => 2013-04-27
[2] => 2013-04-28
[3] => 2013-04-29
[4] => 2013-04-30
[5] => 2013-05-01
)
方法二:
输出:
Array
(
[0] => 2013-4-27
[1] => 2013-4-28
[2] => 2013-4-29
[3] => 2013-4-30
)
8、获取某个日期的 周数、周对应的开始结束时间
输出:
Array
(
[week_num] =>
[week_start_day] => 2013-04-27
[week_start_day_cn] => 2013年04月27日
[week_end_day] => 2013-05-03
[week_end_day_cn] => 2013年05月03日
)
9、php获取服务器时间
http://xuqin.blog.运维网.com/5183168/1177160
10、php根据出生日期计算年龄
http://xuqin.blog.运维网.com/5183168/1168369
|
|
|