A-A+

PHP获取当前日期和时间

2012年02月03日 PHP技术文章 评论 9 条 阅读 1,185 views 次

10.1 系统时区设置

更改 PHP 语言中的时区设置有两种方法:

(1) 修改 php.ini 文件中的设置,找到[date] 下的“;date.timezon=” 选项,将其修改为“date.timezone=Asia/Hong_Kong”,然后重新启动 Apache服务器

(2) 在应用程序中,在使用时间日期函数之前添加如下函数:

date_default_timezone_set(timezone);参数 timezone 为 PHP 可识别的时区名称,如果时区名称 PHP 无法识别,则系统采用 UTC 时区。例如:date_default_timezone_set("Asia/Hong_Kong");设置完成后,date()函数便可以正常使用,不会再出现时差问题。

10.2 输出格式化的日期和时间

在 PHP 中通过 date()函数获取当前的日期和时间。date()函数的语法如下:date(string format,int timestamp).date()函数将返回的参数 timestamp 按照指定格式而产生的字符串。其中的参数 timestamp 是可选的,如果省略,则使用当前时间。format 参数可以使开发人员按其指定的格式输出日期和时间。

参数 format 的格式化选项

a 小写的上午和下午值,返回值 am 或 pm
A 大写的上午和下午值,返回值 AM 或 PM
B Swatch Internet 标准时间,返回值 000-999
d 月份中的第几天,有前导零的两位数字,返回值 01-31
D 星期中的第几天,文本格式,3个字母,返回值 Mon-Sun
F 月份,完整的文本格式,返回值 January-December
h 小时,12 小时格式,没有前导零,返回值 1-12
H 小时,24 小时格式,没有前导零,返回值 0-24
i 有前导零的分钟数,返回值 00-59
I 判断是否为夏令时,返回值如果是夏令时为 1,否则为 0
j 月份中的第几天,没有前导零,返回值 1-31
l(L的小字) 星期数,完整的文本格式,返回值 Sunday-Saturday
L 判断是否为闰年,返回值如果是闰年为 1,否则为 0
m 数字表示的月份,有前导零,返回值 01-012
M 3个字母缩写表示的月份,返回值 Jan-Dec
n 数字表示的月份,没有前导零,返回值 1-12
O 与格林威治时间相差的小时数,如+0200
r RFC 822格式的日期,如 Thu,21 Dec 2000 16:01:07+0200
s 秒数,有前导零,返回值 00-59
S 每月天数后面的英文后缀,两个字符,如 st、nd、rd或者 th。可以和 j 一起使用
t 指定月份所应有的天数,28-31
T 本机所在的时区
U 从 UNIX 纪元(January 1 1970 00:00:00 GMT)开始至今的妙数
w 星期中的第几天,数字表示,返回值为 0-6
W ISO-8601 格式年份中的第几周,每周从星期一开始
y 两位数字表示的年份,返回值如 88 或 08
Y 4 位数字完整的表示年份,返回值如 1998、2008
z 年份中的第几天,返回值 0-366
Z 时差偏移量的秒数。UTC 西边的时区偏移量总是负的。UTC 东边的时区偏移量总是正的,返回值-43200-43200

date()函数可以对 format 选项随意地组合。详细的日期及时间:date("Y-m-d H:i:s");

10.3 计算两个日期的差值

<?PHP
date_default_timezone_set("Asia/Hong_Kong");
$time1 = strtotime(date("Y-m-d H:i:s"));  //当前的系统时间
$time2 = strtotime("2013-2-10 17:10:00");  //放假的时间
$time3 = strtotime("2013-1-1");  //2013年元旦
$sub1 = ceil(($time2 - $time1)/3600); //(60 秒*60分)秒/小时
$sub2 = ceil(($time3 - $time1)/86400); //(60秒*60分*24小时)秒/天
echo "离放假还有<font color=red>$sub1</font>小时!!!";
echo "<p>";
echo "离 2013 年元旦还有<font color=red>$sub2</font>天!!!";
?>

说明:ceil()函数的格式为 float ceil(float value),该函数为取整函数,返回不小于参数 value 值的最小整数。如果有小数部分,则进一位。应注意该函数的返回类型为 float 型,而不是整型。

标签:

9 条留言  访客:9 条  博主:0 条

  1. 企业短信群发平台

    好心累

  2. 网页代理

    有一点点比ASP的获取时间复杂一些。

  3. 在线代理

    其实没必要这么麻烦的,直接使用PHP的time函数不就结了吗?

  4. 郑州网站优化

    系统的时区真多。

  5. PHP新手

    直接 echo date(‘Y-m-d H:i:s’,time()); 不就可以了吗。。。

  6. 迷因创意

    一直没能搞明白 php 中的时间戳是什么意思,时间就不用说了,但函数太多记不住,只记住一个 time 就行了,但还要格式化,这点就不如 ASP。

    • smiling

      ASP的没有哪么多的时间函数,PHP 时间戳说白了就是把时间搞成了一串数字,具体的我也不太明白,会使用就行了。

  7. 成都seo

    PHP中时间的函数太多了,之前学ASP的时候没学这么多函数,现在一看就有点蒙了。

    • smiling

      ASP 时间操作是有点简单。

给我留言