php获取当前时间

上传人:子 文档编号:43520368 上传时间:2018-06-06 格式:DOC 页数:16 大小:22.45KB
返回 下载 相关 举报
php获取当前时间_第1页
第1页 / 共16页
php获取当前时间_第2页
第2页 / 共16页
php获取当前时间_第3页
第3页 / 共16页
php获取当前时间_第4页
第4页 / 共16页
php获取当前时间_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《php获取当前时间》由会员分享,可在线阅读,更多相关《php获取当前时间(16页珍藏版)》请在金锄头文库上搜索。

1、phpphp 获取当前时间获取当前时间php 获取当前时间 使用函式 date() 实现 显示的格式: 年-月-日 小时:分钟:秒 相关时间参数: a - “am“ 或是 “pm“ A - “AM“ 或是 “PM“ d - 几日,二位数字,若不足二位则前面补零; 如: “01“ 至 “31“ D - 星期几,三个英文字母; 如: “Fri“ F - 月份,英文全名; 如: “January“ h - 12 小时制的小时; 如: “01“ 至 “12“ H - 24 小时制的小时; 如: “00“ 至 “23“ g - 12 小时制的小时,不足二位不补零; 如: “1“ 至 12“ G - 24

2、 小时制的小时,不足二位不补零; 如: “0“ 至 “23“ i - 分钟; 如: “00“ 至 “59“ j - 几日,二位数字,若不足二位不补零; 如: “1“ 至 “31“ l - 星期几,英文全名; 如: “Friday“ m - 月份,二位数字,若不足二位则在前面补零; 如: “01“ 至 “12“ n - 月份,二位数字,若不足二位则不补零; 如: “1“ 至 “12“ M - 月份,三个英文字母; 如: “Jan“ s - 秒; 如: “00“ 至 “59“ S - 字尾加英文序数,二个英文字母; 如: “th“,“nd“ t - 指定月份的天数; 如: “28“ 至 “31“

3、U - 总秒数 w - 数字型的星期几,如: “0“ (星期日) 至 “6“ (星期六) Y - 年,四位数字; 如: “1999“ y - 年,二位数字; 如: “99“ z - 一年中的第几天; 如: “0“ 至 “365“ 可以自由设定显示的内容,连接符号或是显示位置,例如 date(“m-d H“) 或者 date(“dmY“);?等php 中的日期处理加入时间:2004-12-18 17:35:22 大小:12 KB 阅读次数:1405PHP 中的日期处理转贴:xiaxia 日期:2004-05-26 人气:9 我正打算用 PHP 编写一种帮助处理系统。我发现我必须知道处理完最后一位

4、客户的问题后已经过去了多长时间?当我过去用 ASP 时解决这个问题相当简 单,ASP 有相应的函数 DateDiff 可以给出两个日期间间隔多少月、多少天和多少秒。当我搜寻完 PHP 手册后我发现 PHP 并没有类似的函数。 本文包含以下内容: 1、 得到目前的日期和时间我们有多少种方式? 2、 改变日期显示的方式日期和时间的显示形式 3、 转换现在的日期为 Unix 的时间戳值 4、 改变日期 a. 增加时间 b. 减去时间 c. 找出两日期之间的间隔 5、 为 PHP 添加 DateAdd 函数 6、 为 PHP 添加 DateDiff 函数 *得到目前的日期和时间 在 Unix 中,时间

5、的表示方式为计算从 1970 年 1 月 1 日零时起所过去的秒数,这称为 UNIX 时间戳(Unix Epoch)。 如果我们有这样一段的代码: ? echo time(); ? 将返回值 958905820 而此时的时间为 2000 年 5 月 21 日 12 时 43 分。 你也许会说这相当不错。当这对我毫无帮助,或者只有一点帮助。在 PHP 中,对日期处理的函数都必须用到由 time()返回的时间戳值。同时,由于 PHP 在 Unix 和 Windows 系统中均使用同样的时间戳值,这就允许你不需要修改代码即可在不同的系统间移植。另外的一个好处是 time()函数返回的是一个 整数,你

6、可以将其作为整数字段或文本字段存入数据库,而不必使用特别的日期/时间字段。 你已经基本了解了 Unix 的时间戳值,现在让我们来展示它的实际用途。 改变日期显示的方式日期和时间的显示形式 PHP 提供两个办法来将 Unix 的时间戳值转换成为有用的数据。第一个是 date()函数。这个函数有两个参数第一个字符串用于设定你所希望返回的格式,第二个为 Unix 的时间戳值。 格式化字符串通过一些简单的特殊格式化字符来显示你所希望看到的格式的日期和时间。假设你希望日期以这样的格式显示“18h01 Sunday 21 May” 。 我们需要对字符串中的每一部分使用一个特殊格式化字符,你可以从 PHP

7、手册中日期和时间函数库中找到。这样的特殊格式化字符数量不少,他们所表示的类似于 星期几、月的英文名、用 2 位或 4 位数表示的年份,是否是上午(AM)或下午(PM)以及其他。对于这个例子我们需要的特殊字符为: H 24 小时制的小时 i 分钟 l 星期几的英文全名 d 本月的第几日 F 月份的英文全名 因此我们的格式化字符串为”Hhi l d F” , PHP 代码为: ? echo date (“Hhi l d F“ ,time(); ? 当我们执行这段代码,我们发现我们所得到的结果为: 180609 Sunday 21 May 这样的结果看起来有些奇怪。让我们再查一下 PHP 手册,原来

8、h所代表的是 12 小时制的小时数。这再次证明了一句真理:“计算机只做你所告诉它该做的,而不是你想要它做的” 。我们有两个选择。第一个是在 h 前使用转义字符“”: echo date (“Hhi l d F“, time(); 我们得到这样的结果: 18h12 Sunday 21 May 这正是我们所要的。但如果我们在一个十分复杂的句子中需要包含日期和时间,我们是否需要对每个字符使用转义字符? 答案当然是不。我们使用另一个函数 strftime()。 strftime()有两个好处。第一个好处我们并不在本文讨论范围内如果你使用 setlocale()函数,你可以通过 strftime 得到相

9、应语言 的月份的名称。另外的一个好处是你可以将特别的日期和时间的格式化字符包含在你的字符串中。这同时也意味着无论你是否要学习date()函数的所有特殊格 式化字符,你都必须学习一整套完全不同的格式化字符。 strftime()工作的方式和 date()没有什么不同,除了特殊格式化字符的前面必须添加一个百分号%。如果用 strftime()函数,前面例子的代码如下: ? echo strftime (“%Hh%M %A %d %b“ ,time(); ? 结果为: 18h24 Sunday 21 May 这也许看起来将简化繁,但考虑一下如果你所需要的显示的为“Today is Sunday 21

10、 May 2000. The time is somewhere close to 18h24.“ 我想使用 date()函数无疑令人感到厌烦。 在开始的时候,我提及我们有两种方式可以从 Unix 时间戳值中得到有用的数据。我们刚刚了解了 date()和 strftime()。另一个getdate()。这个函数只需要 Unix 的时间戳值作为参数,而函数的返回值为日期和时间的数组。 下面是一个例子: ? $date_time_array = getdate (time(); echo $date_time_array “weekday“; ? 返回的结果为: Sunday 除了“weekday

11、“,该数组的其他部分为: “seconds“ 秒 “minutes“ 分 “hours“ 小时 “mday“ - 本月的第几天 “wday“ -本周的第几天(数字) “mon“ -月(数字) “year“ 年 “yday“ - r 本年的第几天(数字) “month“ -月份全名 我们现在可以得到容易辨认的日期和时间。那么其他呢? *转换现在的日期为 Unix 的时间戳值 通常你必须处理一些日期或时间格式的数据。打开 M$的一个 Access数据库,所有的日期都以 YYYY/MM/DD 的格式存储,加入目前的日前即为 2000/05/27。Mktime()函数可以将一个时间转换成 Unix 的

12、时间戳值。 函数的格式为:int mktime(int hour, int minute, int second, int month, int day, int year, int ); 从左往右你必须提供小时、分、秒、月、天和年。最后一个参数用于指定你是否处于夏令时,此参数是可选的,所以我们将忽略它。 代码如下: ? echo mktime (0, 0,0 ,5, 27,2000 ); ? 由于不知道小时、分和秒同时这些参数必须填写,我将其设置为0。设置为 0 意味着时间为午夜。 ? $access_date = “2000/05/27“; /explode()函数用一个字符串作为分界来分

13、解另一个字符串。这个例子$access_date 通过字符串”/”来分解 $date_elements = explode(“/“ ,$access_date); / 此时 / $date_elements0 = 2000 / $date_elements1 = 5 / $date_elements2 = 27 echo mktime (0, 0,0 ,$date_elements 1, $date_elements 2,$date_elements 0); ? 我们看一个比从 Access 数据库单纯获得日期更复杂的情况,我们得到一个以下格式的日期和时间:2000/05/27 02:40:2

14、1 PM ? / 来自 Access 的字符串 $date_time_string = “2000/05/27 02:40:21 PM“; / 将字符串分解成 3 部分日期、时间和上午/下午 $dt_elements = explode(“ “ ,$date_time_string); / 分解日期 $date_elements = explode(“/“ ,$dt_elements 0); / 分解时间 $time_elements = explode(“:“ ,$dt_elements 1); / 如果是下午,我们将时间增加 12 小时以便得到 24 小时制的时间 if ($dt_elem

15、ents 2= “PM“) $time_elements 0+=12; / 输出结果 echo mktime ($time_elements 0, $time_elements 1, $time_elements 2, $date_elements1, $date_elements2, $date_elements0); ? *修改日期 有时我们需要知道 6 小时以后是什么时间,35 天前的日期或者从你最后一次玩 Quake3 后已过去多少秒。我们已经知道如何用 mktime()函数从单独的 日期和时间中获得 Unix 的时间戳值。如果我们需要的并非目前日期和时间的 Unix 时间戳值,我们该

16、咋办?下面是一些练习可以帮助说明我们后面所要做的。 正如前面所见,mktime()使用以下参数:小时、分、秒、月、天和年。想想第二节,getdate()函数可以为我们获得这些参数。 ? / 将目前的时间戳值放入一数组内 $timestamp = time(); echo $timestamp; echo “p“; $date_time_array = getdate( $timestamp); / 用 mktime()函数重新产生 Unix 时间戳值 $timestamp = mktime($date_time_array “hours“, $date_time_array“minutes“ ,$date_time_array “seconds“,$date_time_array “mon“, $date_time_array“mday“ ,$date_time_array “year“

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号