PHP中的日期及时间
作者:宫金丹865 | 来源:互联网 | 2018-03-18 05:45
PHP中的日期及时间
PHP有很多便于使用的函数以显示及处理日期。 要以某种特定格式显示日期或时间,可使用date()函数。它有两个参数:如何显示日期的格式以及代表你所要显示日期的时间戳。这个时间戳必须是先前所提到的从 1970 年起算的总秒数(如果你要使用当前时间可使用time()函数,此函数会返回“现在”的时间戳)。date() 有很多格式选项,如同C语言中的strftime()函数或Perl语言的POSIX::strftime()函数一样。 $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. 当然,如果你需要某已知的特定日期,这种复杂的格式函数并不会十分有用。因为你事先已经知道你的格式将会是什么。当在处理需要用户选择某日期的表单输出部分时,这些函数会比较有用: $d = time(); for ($i = 0; $i <10; $i++) { echo ''.date('F d',$d); $d += 86400; } ?> 以上会输出一个单选框,其中有十个选项——今天及以后九天。在程序循环开始之前,我们将当前时间存放于变量$d中。每一个值会被显示,而其中的值会是以Unix时间戳计算,且所显示出来的文字设定为月、日(“July 27”、“July 28”等等)。在显示值后,变量$d 会被加上 86,400(是一天二十四小时的总秒数——24小时*60分钟*60秒)。 通过结合mktime()及date()函数,你就可以得出关于某特定用户输入日期的相关信息。那如果要寻找从某特定日期算起的第一个星期天(或者一周中的任意一天)呢?首先,先编写一个会输出适当格式的函数: 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'); ?> " METHOD=GET> Find the first for ($i = 0; $i <7; $i++) { echo " $dotw[$i]"; } echo ' after '; for ($i = 1; $i <= 12; $i++) { echo " $months[$i]"; } echo ' '; for ($i = 1; $i <= 31; $i++) { echo " $i"; } echo ' , '; $start_year = date('Y') - 10; $end_year = $start_year + 20; for ($i = $start_year; $i <= $end_year; $i++) { echo " $i"; } echo ' '; echo ' '; } ?> 这当中含有一些函数是我们到目前为止还没讨论过的。$months数组写得略微不同,因为需要让一月份索引为1,而非0。另外,由程序自动产生此表单要比将所有这个表单元素的值一一手动列出要更为轻松,因此,顶端的表单开始部分是display_form()函数中唯一不是属于 PHP模式的。此外,使用数据(“Y”)设置变量$start_year以及变量$end_year能够方便处理从今年算起十年前后的时间范围。 以下是处理表单的函数: 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. 我们同样需要那个熟悉的主循环将这些函数捆绑在一起: if (empty($stage)) { display_form(); } else { process_form(); } ?> 日期处理代码有时需要更为复杂以处理夏令时及不同时区,不过date()以及mktime()函数都是处理Unix时间戳变换的基本工具,它们在算法上操作简单,且以直观方式表达日期与时间。函数date()以及mktime()以机器所在时区来对时间进行操作。如果想使用格林威治时间(GMT),则可使用函数gmdate()以及gmmktime()。 例如,对于一台处于美国东部夏令时的计算机(落后格林威治时间四小时): $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
推荐阅读
腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ...
[详细]
蜡笔小新 2023-12-10 17:01:40
本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ...
[详细]
蜡笔小新 2023-12-14 17:15:19
本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ...
[详细]
蜡笔小新 2023-12-14 14:53:02
本文介绍了游戏开发中的人工智能技术,包括定性行为和非定性行为的分类。定性行为是指特定且可预测的行为,而非定性行为则具有一定程度的不确定性。其中,追逐算法是定性行为的具体实例。 ...
[详细]
蜡笔小新 2023-12-14 10:22:59
本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ...
[详细]
蜡笔小新 2023-12-13 16:16:05
本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ...
[详细]
蜡笔小新 2023-12-13 15:38:19
本文介绍了使用Python解析C语言结构体的方法,包括定义基本类型和结构体类型的字典,并提供了一个示例代码,展示了如何解析C语言结构体。 ...
[详细]
蜡笔小新 2023-12-11 18:45:50
本文深入讲解了C语言中常量与变量的概念及其深入实质,强调了对常量和变量的理解对于学习指针等后续内容的重要性。详细介绍了常量的分类和特点,以及变量的定义和分类。同时指出了常量和变量在程序中的作用及其对内存空间的影响,类似于const关键字的只读属性。此外,还提及了常量和变量在实际应用中可能出现的问题,如段错误和野指针。 ...
[详细]
蜡笔小新 2023-12-11 09:28:31
本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ...
[详细]
蜡笔小新 2023-12-09 17:36:44
说到C语言的语句块,真是一堆血泪史。第一大坑就是优先级。刚工作那会儿,C的书没看几本,自信满满的认为C语言都会了,拿出搞ACM培养的豪情壮志,代码倒是写得爽,却到处留 ...
[详细]
蜡笔小新 2023-10-17 21:30:36
本文目录一览:1、C语言如何编写?2、如何编写 ...
[详细]
蜡笔小新 2023-10-17 20:49:09
在处理字符串的过程当中,通常情况下都会逐个遍历整个字符串数组,在多个字符串的处理中,处理不同,时间复杂度不同,这里通过利用空间换时间等不同方法,以字符串处理为例来讨论几种情况:1: ...
[详细]
蜡笔小新 2023-10-17 20:42:42
自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ...
[详细]
蜡笔小新 2023-10-17 19:30:09
篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ...
[详细]
蜡笔小新 2023-10-17 18:58:48
有关phpfgetss()函数的文章推荐10篇:了解如何使用PHP的各种文件函数。查看诸如fopen、fclose和feof之类的基本文件函数;了解诸如fgets、fgetss和f ...
[详细]
蜡笔小新 2023-10-17 15:45:58