首页 电脑学院 黑客教程 网站技术 网页特效 免费论文 公文写作 演讲发言 实用文档 职场指南 时尚生活 情感男女 其他资讯

您的位置:首页-> 网站技术-> PHP技术-> PHP中的日期及时间
PHP中的日期及时间
PHP有很多便于使用的函数以显示及处理日期。



要以某种特定格式显示日期或时间,可使用date()函数。它有两个参数:如何显示日期的格式以及代表你所要显示日期的时间戳。这个时间戳必须是先前所提到的从 1970 年起算的总秒数(如果你要使用当前时间可使用time()函数,此函数会返回“现在”的时间戳)。date() 有很多格式选项,如同C语言中的strftime()函数或Perl语言的POSIX::strftime()函数一样。

<?php

$birthday_stamp = mktime(19,45,0,3,10,1975);

$birthday_formatted = date('F d, Y - g:ia',$birthday_stamp);

echo "David was born on $birthday_formatted."

?>

会显示

David was born on March 10, 1975--7:45 p.m.


当然,如果你需要某已知的特定日期,这种复杂的格式函数并不会十分有用。因为你事先已经知道你的格式将会是什么。当在处理需要用户选择某日期的表单输出部分时,这些函数会比较有用:

<SELECT NAME="when">

<?php

$d = time();

for ($i = 0; $i < 10; $i++) {

echo '<OPTION VALUE="'.$d.'">'.date('F d',$d);

$d += 86400;

}

?>

</SELECT>

以上会输出一个单选框,其中有十个选项——今天及以后九天。在程序循环开始之前,我们将当前时间存放于变量$d中。每一个<OPTION>值会被显示,而其中的值会是以Unix时间戳计算,且所显示出来的文字设定为月、日(“July 27”、“July 28”等等)。在显示值后,变量$d 会被加上 86,400(是一天二十四小时的总秒数——24小时*60分钟*60秒)。

通过结合mktime()及date()函数,你就可以得出关于某特定用户输入日期的相关信息。那如果要寻找从某特定日期算起的第一个星期天(或者一周中的任意一天)呢?首先,先编写一个会输出适当格式的函数:

<?php

functiondisplay_form() {

global $PHP_SELF;

$dotw = array('Sunday','Monday','Tuesday','Wednesday','Thursday',

'Friday','Saturday');

$months = array( 1 => 'January','February','March','April','May','June',

'July','August','September','October','November','December');

?>

<FORM TARGET="<?php echo $PHP_SELF; ?>" METHOD=GET>

Find the first

<SELECT NAME="dotw">

<?php

for ($i = 0; $i < 7; $i++) {

echo "<OPTION> $dotw[$i]";

}

echo '</SELECT> after <SELECT NAME="month">';

for ($i = 1; $i <= 12; $i++) {

echo "<OPTION VALUE=\"$i\"> $months[$i]";

}

echo '</SELECT> <SELECT NAME="day">';

for ($i = 1; $i <= 31; $i++) {

echo "<OPTION> $i";

}

echo '</SELECT>, <SELECT NAME="year">';

$start_year = date('Y') - 10;

$end_year = $start_year + 20;

for ($i = $start_year; $i <= $end_year; $i++) {

echo "<OPTION> $i";

}

echo '<INPUT TYPE="HIDDEN" NAME="stage" VALUE="process">';

echo '</SELECT> <INPUT TYPE="SUBMIT" VALUE="Do it!"7></FORM>';

}

?>

这当中含有一些函数是我们到目前为止还没讨论过的。$months数组写得略微不同,因为需要让一月份索引为1,而非0。另外,由程序自动产生此表单要比将所有这个表单元素的值一一手动列出要更为轻松,因此,顶端的表单开始部分是display_form()函数中唯一不是属于 PHP模式的。此外,使用数据(“Y”)设置变量$start_year以及变量$end_year能够方便处理从今年算起十年前后的时间范围。
以下是处理表单的函数:



<?php

function process_form() {

global $dotw;

global $month;

global $day;

global $year;

$timestamp = mktime(0,0,0,$month,$day,$year);

$next_dotw = '';

$next_timestamp = $timestamp;

while ($next_dotw != $dotw) {

$next_timestamp += 86400;

$next_dotw = date('l',$next_timestamp);

}

$formatted_first = date('F d, Y',$timestamp);

$formatted_next = date('F d, Y',$next_timestamp);

echo "The first $dotw after $formatted_first is $formatted_next.";

}

?>

首先,此代码将所得到的日期转化为Unix时间戳形式。如果我们需要更为谨慎的话,可以加入某些代码以确保所得到的日期在合法的日期范围内,不过在这此我们暂时没有必要这样做。

当我们要寻找的“下一天”的星期数不是用户所输入的一个星期数时,循环继续。当不一样时,日期所代表的总秒数就会被增加(同样是86400秒=24小时*60分钟*60秒),然后那个秒数所代表的星期数就会被重新计算。

一旦星期数一致,process_form() 函数就会输出一行正确消息:

The first Sunday after June 25, 1999 is June 27, 1999.

我们同样需要那个熟悉的主循环将这些函数捆绑在一起:

<?php

if (empty($stage)) { display_form(); }

else { process_form(); }

?>

日期处理代码有时需要更为复杂以处理夏令时及不同时区,不过date()以及mktime()函数都是处理Unix时间戳变换的基本工具,它们在算法上操作简单,且以直观方式表达日期与时间。函数date()以及mktime()以机器所在时区来对时间进行操作。如果想使用格林威治时间(GMT),则可使用函数gmdate()以及gmmktime()。

例如,对于一台处于美国东部夏令时的计算机(落后格林威治时间四小时):

<?php

$today = mktime(12,0,0,6,25,1999);

echo 'Here it is '.date('g:i:s a, F d, Y',$today);

echo '';

echo 'In GMT it is '.gmdate('g:i:s a, F d, Y',$today);

?>

将显示

Here it is 12:00:00 pm, June 25, 1999

In GMT it is 4:00:00 pm, June 25, 1999



在百度中查找更多PHP中的日期及时间的内容
职场宝典   职场故事   职场跳槽   职场文化   职场理财   职场充电   情感天地   职场女性   职场礼仪   职场新人
报告总结   述职报告 工作总结 调查报告 工作汇报 计划方案 个人总结 社会实践 规章制度 调研报告 
  实习报告 考察报告 辞职报告 
演讲发言   竞职演说   就职演说   精彩演说   爱国演讲   英语演讲   十七大演讲   安全生产演讲稿   
节日祝福   重阳节 国庆节 教师节 中秋节 情人节 七夕节 劳动节 妇女节 清明节 愚人节 春节 元旦 圣诞节  儿童节  端午节 母亲节 新婚祝福 生日祝福 
讲话致辞   开业开幕   会议主持   庆典致辞   会议发言   党风廉政   党政报告   贺电慰问   婚丧嫁娶   思想宣传
法律常识   基本常识   法律文书   权益常识   劳动保障   婚姻继承   民事诉讼   刑事诉讼   
党建材料   入党申请   思想学习   党性分析   思想汇报   转正申请   民主生活   党委党建   入团申请   申报材料
求职简历   个人简历   求职自荐   求职谋略   面试技巧   求职英语   自我鉴定   英文简历   简历封面
心得体会   心得体会   经验交流   读后感   
时政热点   和谐社会   先进性教育   新农村建设   十七大   八荣八耻   科学发展观   劳动合同法   
人际沟通   社交技巧   社交礼仪   口才技巧   谈话技巧   演讲技巧   
营销技巧   电话销售   网络销售   推销技巧   促销技巧   销售口才   营销手段   销售技巧   谈判技巧   

“ PHP中的日期及时间”来源于网络,版权归作者所有!勿用于商业用途。

PHP技术

ASP技术
PHP技术
JSP技术
.NET技术
服务器技术
数据库开发
其它类

本类阅读TOP10

·适应中文的substr函数
·PHP.INI配置文件漫游(2)
·Win2000下PHP服务器安装攻略
·获得客户端真实的IP地址
·网站测试技术简介
·PHP邮件专题
·什么是Session?
·Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
·最好的邮件编码解码类,再没有比这个好的了!贴不下了(2)6
·在Windows NT 4.0下安装ActivePerl

广告


关于本站|服务条款|广告服务|客服中心|发布文章|网站留言