PHP笔记之:日期函数的使用介绍 |
本文标签:PHP,日期函数 介绍 复制代码 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Getting started with dates in php5</title> </head> <body> <?php date_default_timezone_set(Asia/Shanghai); echo "Today is ",date(l); ?> </body> </html> 你将在你的浏览器里看到如下的内容 。 Today is Friday这个函数输出星期几的文本格式 。date函数至少需要一个字符参数(这个参数告诉我们怎样格式化当前日期) 。 尝试不同的格式 Today is 2012-08-17 有一些日期是很普遍地被使用,所以PHP提供了一些常量供你使用 。举例,你可以使用Cookie获取到客户端日期 。 <?php echo "Today is ",date(DATE_COOKIE); ?>你将得到如下面的内容 Today is Friday, 17-Aug-12 11:34:38 CST注意当使用常量的时候不要使用引号 。 The time is 11:39:59am 本地化你的时区 <?php echo "Today is ",date(Y-m-d, 1309133434); ?>结果是: Today is 2011-06-27 这个看起来没什么用途,但它意味着你能用date()函数做计算 。这之前,你需要简单的创建一个时间戳 。 创建时间戳 复制代码 代码如下: <?php $mytime=mktime(9, 23, 33, 6, 26, 2011); echo "Today is ",date(Y-m-d g:i:sa, $mytime); ?> 得到的结果是: Today is 2011-06-26 9:23:33am mktime() 函数需要你依次传递小时,分钟,秒,月,日,年 。这是获取时间戳的好的方式,但是有更酷的方式 。 通过字符获取时间戳 复制代码 代码如下: <?php $mytime=strtotime("7:50pm June 26 2011"); echo "Today is ",date(Y-m-d g:i:sa, $mytime); ?> 输出: Today is 2011-06-26 7:50:00pm PHP在解释字符方面是相当灵巧的,但不是完美的,因此,在你插入之前一定要测试你输入的字符 。使用"english-like instructions"转化成需要的时间戳,这是一个非常不错的方式 。你可以像下面这样做: 复制代码 代码如下: $nextfriday=strtotime("next Friday"); //下周五 $nextmonth=strtotime("+1 Month"); //从今天开始计算一个月以后的时间 $lastchristmas=strtotime("-1 year dec 25"); //去年圣诞节 获取日期范围 strtotime返回的值被转换为数字,我们能够用这些数字做基础运算,我们可以用这些数字做很多非常有意思的事情 。比如,你每周二需要教一门功课,为期16周,你想得到你教科时间 。你能够做下面的事情 。 复制代码 代码如下: <?php $startdate = strtotime(next Tuesday); $enddate = strtotime(+16 weeks, $startdate); $currentdate = $startdate; echo <ol>; while($currentdate < $enddate): echo "\t<li>", date(M d, $currentdate); $currentdate = strtotime(+1 week, $currentdate); endwhile; echo </ol>; ?> 你将会得到如下的结果: 复制代码 代码如下: Aug 21 Aug 28 Sep 04 Sep 11 Sep 18 Sep 25 Oct 02 Oct 09 Oct 16 Oct 23 Oct 30 Nov 06 Nov 13 Nov 20 Nov 27 Dec 04 注意一下这行:$currentdate = strtotime("+1 week", $currentdate) 。在这行,你会发现你需要指定一个时间戳做为第二个参数,strtotime将使用这个参数代替默认时间戳(今天),并进行运算 。 到某一个日期的天数 复制代码 代码如下: $someday = strtotime("3 weeks thursday November 1"); $daysUtilDate = ceil(($someday - time())/60/60/24); echo "There are ", $daysUtilDate, " until Thanksgiving"; 首先,我们开始计算感恩节日期(11月1号之后的第一个星期四之后的第3个星期四),然后我们通过简单的算术,计算出感恩节到当前时间之间的天数 。当我们进行比较运算的时候,我们可以使用time(),因为它返回,到当前时间的纪元秒数 。 |