PHP 日期和时间
-
PHP 日期和时间
日期是日常生活的重要组成部分,无需思考即可轻松与他们合作。PHP还提供了强大的日期算术工具,可以轻松操作日期。 -
time()获得时间戳
PHP的time()
函数为您提供有关当前日期和时间的所有信息。它不需要参数但返回一个整数。time()
返回的整数表示自1970年1月1日格林尼治标准时间午夜起经过的秒数。此时间称为UNIX纪元,自此以后经过的秒数称为时间戳。
尝试一下<html> <head> <title>E_NOTICE</title> </head> <body> <?php print time(); ?> </body> </html>
这将产生以下结果:1566785104
这是很难理解的。但PHP提供了优秀的工具,可以将时间戳转换为人们熟悉的形式。 -
使用getdate()转换时间戳
函数getdate()
可选地接受时间戳并返回包含有关日期信息的关联数组。如果省略时间戳,它将使用time()
返回的当前时间戳。下表列出了getdate()
返回的数组中包含的元素。数组key 描述 例如 seconds 过了多少秒(0-59) 20秒 minutes 过了多少分钟(0-59) 29 hours 一天中的小时数(0-23) 22 mday 每月的某一天(1-31) 5 weekday 星期几(0-6) 4 mon 一年中的一个月(1-12) 7 year 年(4位数) 2019 yday 一年中的某一天(0-365) 19 weekday 星期几 Thursday month 月份 January 0 时间戳 1566785104 现在您可以完全控制日期和时间。你可以用你想要的任何格式格式化这个日期和时间。试试下面的例子
尝试一下<?php $date_array = getdate(); foreach ( $date_array as $key => $val ){ print "$key = $val<br />"; } $formated_date = "今日的日期是: "; $formated_date .= $date_array['year']."-"; $formated_date .= $date_array['mon'] . "-"; $formated_date .= $date_array['mday']; print $formated_date; ?>
-
使用date()转换时间戳
date()
函数返回表示日期的格式化字符串。您可以对date()
返回的格式进行很多控制,使用时候必须传递给它的字符串参数。date(format,[timestamp])
提示:format是必需要的参数,timestamp是可选的。不传的话,默认使用time()函数返回的值。
下表列出了格式字符串可以包含的代码格式字符 描述 例如 d 月份中的第几天,有前导零的 2 位数字 01 到 31 D 星期中的第几天,文本表示,3 个字母 Mon 到 Sun j 月份中的第几天,没有前导零 1 到 31 l 星期几,完整的文本格式 Sunday 到 Saturday N ISO-8601 格式数字表示的星期中的第几天(PHP 5.1.0 新加) 1(表示星期一)到 7(表示星期天) S 每月天数后面的英文后缀,2 个字符 st,nd,rd 或者 th。可以和 j 一起用 w 星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六) z 年份中的第几天 0 到 365 W ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的) 例如:42(当年的第 42 周) F 月份,完整的文本格式, 例如 January 或者 March January 到 December m 数字表示的月份,有前导零 01 到 12 M 三个字母缩写表示的月份 Jan 到 Dec n 数字表示的月份,没有前导零 1 到 12 t 指定的月份有几天 28 到 31 L 是否为闰年 如果是闰年为 1,否则为 0 o ISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 5.1.0 新加) 例如: 1999 或 2003 Y 4 位数字完整表示的年份 例如:1999 或 2003 y 2 位数字表示的年份 例如:99 或 03 a 小写的上午和下午值 am 或 pm A 大写的上午和下午值 AM 或 PM B Swatch Internet 标准时 000 到 999 g 小时,12 小时格式,没有前导零 1 到 12 G 小时,24 小时格式,没有前导零 0 到 23 h 小时,12 小时格式,有前导零 01 到 12 H 小时,24 小时格式,有前导零 00 到 23 i 有前导零的分钟数 00 到 59 s 秒数,有前导零 00 到 59 u 毫秒 (PHP 5.2.2 新加)。需要注意的是 date() 函数总是返回 000000 因为它只接受 integer 参数, 而 DateTime::format() 才支持毫秒。 示例: 654321 e 时区标识(PHP 5.1.0 新加) 例如:UTC,GMT,Atlantic/Azores I 是否为夏令时 如果是夏令时为 1,否则为 0 O 与格林威治时间相差的小时数 例如:+0200 P 与格林威治时间(GMT)的差别,小时和分钟之间有冒号分隔(PHP 5.1.3 新加) 例如:+02:00 T 本机所在的时区 例如:EST,MDT(【译者注】在 Windows 下为完整文本格式, 例如“Eastern Standard Time”,中文版会显示“中国标准时间”)。 Z 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。 -43200 到 43200 c ISO 8601 格式的日期(PHP 5 新加) 2004-02-12T15:19:21+00:00 r RFC 822 格式的日期 例如:Thu, 21 Dec 2000 16:01:07 +0200 U 从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数 1566785104 试试下面的例子
尝试一下<?php print date("Y-m-d H:i:s<br>", time()); print "今天是: "; print date("Y年的n月j日, h:i:s .a ", time()); ?>