PHP 日期LOGIN

PHP 日期

PHP date() 函数用于格式化时间/日期。

PHP 时间戳

UNIX 时间戳(timestamp)是 PHP 中关于时间日期一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和。

PHP提供了内置函数 time() 来取得服务器当前时间的时间戳。

例子:

<?php
  echo time();
?>

上面的例子运行后得到的是一串类似这样的数字:1379115455

有效的时间戳典型范围是格林威治时间 1901年12月13日 20:45:54 到 2038年1月19日 03:14:07(此范围符合 32 位有符号整数的最小值和最大值)。 不过从 5.1.0 起,已经克服了年的范围只能是 1901 到 2038 之间的问题。

提示

1. time() 得到的总是当前的时间戳,所以是不固定的值

2. 如果时间戳为负数,则为从1970年1月1日 00:00:00往前推

日期转换为时间戳

PHP 提供了函数可以方便的将各种形式的日期转换为时间戳,该类函数主要是:

• strtotime():将任何英文文本的日期时间描述解析为时间戳。

• mktime():从日期取得时间戳。

strtotime() 函数用于将英文文本字符串表示的日期转换为时间戳,为 date() 的反函数,成功返回时间戳,否则返回 FALSE 。

语法:

int strtotime ( string time [, int now] )

参数 time 为被解析的字符串,是根据 GNU 日期输入格式表示的日期。

<?php
  echo strtotime("2009-10-21 16:00:10");        //输出类似 1256112010
  echo strtotime("10 September 2008");          //输出类似 1220976000
  echo strtotime("+1 day"), "<br />";           //输出明天此时的时间戳
?>

mktime() 函数用于从日期取得时间戳,成功返回时间戳,否则返回 FALSE 。

语法:

int mktime(时, 分, 秒, 月, 日, 年)

例子:

<?php
  echo mktime(21, 50, 55, 07, 14, 2010);   //输出“1279115455”
?>

 参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。

mktime() 在做日期计算和验证方面很有用,它会自动计算超出范围的输入的正确值。例如下面例子输出的都是 2008-01-01:

<?php
 echo date("Y-m-d", mktime(0, 0, 0, 12, 32, 2007));
 echo date("Y-m-d", mktime(0, 0, 0, 13, 1, 2007));
?>

 下个月的最后一天:

任何给定月份的最后一天都可以被表示为下个月的第 "0" 天,而不是 -1 天,如下面的例子:

<?php
  $lastday = mktime(0, 0, 0, 3, 0, 2008);
  echo strftime("2008年最后一天是:%d", $lastday);
?>

 浏览器输出:

2008年最后一天是:29

PHP date() 函数

PHP date() 函数可把时间戳格式化为可读性更好的日期和时间。

时间戳是一个字符序列,表示一定的事件发生的日期/时间。

语法

string date ( string $format [, int $timestamp ] )

参数                   描述

format               必需。规定时间戳的格式。    

timestamp         可选。规定时间戳。默认是当前的日期和时间。 

   PHP Date() - 格式化日期

date() 函数的第一个必需参数 format 规定了如何格式化日期/时间。

这里列出了一些可用的字符:

d - 代表月中的天 (01 - 31)

m - 代表月 (01 - 12)

Y - 代表年 (四位数)

如需了解 format 参数中可用的所有字符列表,请查阅我们的 PHP Date 参考手册, date() 函数。

可以在字母之间插入其他字符,比如 "/"、"." 或者 "-",这样就可以增加附加格式了:

<?php
  echo date("Y/m/d") . "<br>";
  echo date("Y.m.d") . "<br>";
  echo date("Y-m-d");
?>

上面代码的输出如下所示:

       2016/05/11<br>
       2016.05.11<br>
       2016-05-11        
   

后面还有几个参数:

h 的英文为:hour 代表小时

i的英文为:minute 代表分钟

s的英文为:second 代表秒

写全了就是:

<?php
  //就可以显示出来当前的时间了哟。
  echo date('Y-m-d H:i:s');
?>

格式字串可以识别以下 format 参数的字符串

format字符         说明                                          返回值例子

日                         ---                                                ---    

d    月份中的第几天,有前导零的 2 位数字          01 到 31    

D    星期中的第几天,文本表示,3 个字母           Mon 到 Sun    

j    月份中的第几天,没有前导零                          1 到 31    

l("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 新加)    Examples: 1999 or 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)开始至今的秒数    参见 time()    

完整的 PHP Date 参考手册

如需查看所有日期函数的完整参考手册,请访问我们的 完整的 PHP Date 参考手册。

该参考手册提供了每个函数的简要描述和应用实例!


下一节
<?php echo date('Y-m-d H:i:s'); ?>
提交重置代码
章节课件