Home > php教程 > php手册 > 第十章 日期与时间

第十章 日期与时间

WBOY
Release: 2016-06-13 09:37:11
Original
1137 people have browsed it

 

学习要点:
1.PHP 日期和时间库

 

      使用PHP 编程时,与你遇到的大多数其他类型的数据相比,日期和时间有很大不同。
因为日期和时间没有明确的结构,并且日期的计算和表示也很麻烦。在PHP 中,日期和时
间函数库是PHP 语言的一个核心部分。

      时间戳是自1970 年1 月1 日(00:00:00 GMT)以来的秒数。它也被称为Unix 时间
戳(Unix Timestamp)。Unix 时间戳(Unix timestamp),或称Unix 时间(Unix time)、POSIX 时
间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970 年01 月01 日00 时00
分00 秒起至现在的总秒数。Unix 时间戳不仅被使用在Unix 系统、类Unix 系统中,也在许
多其他操作系统中被广泛采用。例如(1184557366 表示2007-07-16 03:42:46 )

 

一.PHP日期和时间库

验证日期:checkdate()函数能够很好地验证日期,提供的日期如果有效,则返回true,
否则返回false。

<?<span php
</span><span if</span> (<span checkdate</span>(2,29,2007<span )) {
</span><span     echo</span> '日期合法'<span ;
} </span><span else</span><span  {
</span><span     echo</span> '日期不合法'<span ;
}
</span>?>
Copy after login

格式化时间和日期:date()函数返回根据预定义指令格式化时间和日期的字符串形式。
所有格式参数,可以参考手册。

<?<span php
</span><span echo</span> <span date</span>('Y-m-d H:i:sa'); <span //</span><span 直接输入日期和时间</span>
<span echo</span> <span date</span>('今天的日期和时间为:Y/m/d H:i:sa'); <span //</span><span 可以插入无关的字符串</span>
?>
Copy after login

查看更多时间信息:gettimeofday()函数返回与当前时间有关的元素所组成的一个关联数
组。

<?<span php
</span><span print_r</span>(<span gettimeofday</span>()); <span //</span><span 可以传入一个真(1)</span>
?>
Copy after login

将时间戳转换成友好的值:getdate()函数接受一个时间戳,并返回一个由其各部分组成
的关联数组。如果不给参数,那么返回当前的时间和日期。

<?<span php
</span><span print_r</span>(<span getdate</span>(1184557366<span ));
</span>?>
Copy after login

获取当前的时间戳:time()函数可以获取当前的时间戳,并且可以通过设置时间戳的值。

<?<span php
</span><span echo</span> <span date</span>('Y-m-d H:i:s',<span time</span>()+(7*24*60*60<span ));
</span>?>
Copy after login

获取特定的时间戳:mktime()函数可以生成给定日期时间的时间戳。

<?<span php
</span><span echo</span> <span mktime</span>(14,14,14,11,11,2007<span );
</span><span echo</span> <span date</span>('Y-m-d H:i:s',<span mktime</span>(14,14,14,11,11,2007<span ));
</span>?>
Copy after login

计算时间差

<?<span php
</span><span $now</span> = <span time</span><span ();
</span><span $taxday</span> = <span mktime</span>(0,0,0,7,17,2010<span );
</span><span echo</span> <span round</span>((<span $taxday</span> - <span $now</span>)/60/60<span );
</span>?>
Copy after login

将日期转换成时间戳:strtotime()将人可读的日期转换为Unix 时间戳。

<?<span php
</span><span echo</span> <span strtotime</span>('2007-10-31 14:31:33'<span );
</span>?>
Copy after login

计算时间差

<?<span php
</span><span echo</span> (<span strtotime</span>('2007-10-31 14:31:33') - <span strtotime</span>('2007-10-31 11:31:33'))/60/60<span ;
</span>?>
Copy after login

获取当前文件最后修改时间:getlastmod()可以得到当前文件最后修改时间的时间戳。

<?<span php
</span><span echo</span> <span date</span>('Y-m-d H:i:s',<span getlastmod</span><span ());
</span>?>
Copy after login

设置时区和GMT/UTC
修改php.ini 文件中的设置,找到[date]下的;date.timezone = 选项,将该项修改为
date.timezone=Asia/Shanghai,然后重新启动apache 服务器。


putenv()函数可以设置当前的默认时区。

<?<span php
</span><span putenv</span>('TZ=Asia/Shanghai'<span );
</span><span echo</span> <span date</span>('Y-m-d H:i:s'<span );
</span>?>
Copy after login

date_default_timezone_set()可以设置当前的默认时区。
date_default_timezone_get()可以获取当前的默认时区。

<?<span php
date_default_timezone_set(</span>'Asia/Shanghai'<span );
</span><span echo</span> <span date</span>('Y-m-d H:i:s'<span );
</span>?>
Copy after login

取得本地时间localtime()函数可以取得本地时间数据,然后返回一个数组。

<?<span php
date_default_timezone_set(</span>'Asia/Shanghai'<span );
</span><span print_r</span>(<span localtime</span><span ());
</span><span print_r</span>(<span localtime</span>(<span time</span>(), <span true</span><span ));
</span>?>
Copy after login

计算页面脚本运行时间:microtime()函数,该函数返回当前UNIX 时间戳和微秒数。返
回格式为msec sec 的字符串,其中sec 是当前的UNIX 时间戳,msec 为微秒数。

<?<span php
</span><span function</span><span  fntime() {
    </span><span list</span>(<span $msec</span>, <span $sec</span>) = <span explode</span>(' ', <span microtime</span><span ());
    </span><span return</span> <span $msec</span>+<span $sec</span><span ;
}

</span><span $start_time</span> =<span  fntime();

</span><span for</span>(<span $i</span>=0;<span $i</span><1000000;<span $i</span>++<span ) {
    
}

</span><span $end_time</span> =<span  fntime();
</span><span echo</span> <span round</span>(<span $end_time</span> - <span $start_time</span>,4<span );
</span>?>
Copy after login

 注:文章出自李炎恢PHP视频教程,本文仅限交流使用,不得用于商业用途,否则后果自负。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template