热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php时间和日期,php日期和时间

PHP提供了大量的内置函数,使开发人员在时间的处理上游刃有余,大大提高了工作效率。我们今天就为学员介绍一些常见的PHP日期和时间函数以及日期和时间的处理

PHP提供了大量的内置函数,使开发人员在时间的处理上游刃有余,大大提高了工作效率。我们今天就为学员介绍一些常见的PHP日期和时间函数以及日期和时间的处理。  9.1 常用的日期和时间处理函数 表9-1:常用的日期和时间处理函数  函 数  说  明   checkdate  验证时间函数,判断时间是否有效,有效返回true,否则返回false   date_default_timezone_get  取得脚本日期时间函数所使用的默认时区   date_default_timezone_set  设定日期时间函数的默认时区   date  格式化一个本地时间/日期   getdate  获取日期/时间信息   gettimeofday  获取当前时间   localtime  获取本地时间   microtime  返回当前时间戳和微秒数   mktime  取得一个UNIX时间戳   strtotime  将任何英文文本的日期时间描述解析为UNIX时间戳   time  返回当前的UNIX时间戳    9.2 处理日期和时间 9.2.1 获取当前日期和时间:date()函数,用法: date(string format,int timestamp)     该函数将返回参数timestamp按照指定格式而产生的字符串。其中参数timestamp是可选的,如果省略,则使用当前时间。format参数可以使开发人员按其指定的格式输出时间日期。  date_default_timezone_set(PRC);  //设置北京时间.  1. 年-月-日  echo date('Y-m-j');  //例:2007-02-6  echo date('y-n-j');  //例:07-2-6     大写Y表示年四位数字,而小写y表示年的两位数字;  小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字。  echo date('Y-M-j');   //例:2007-Feb-6  echo date('Y-m-d');   //例:2007-02-06     大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0);  没有大写的J,只有小写j表示月份的日期,无前导o;若需要月份带前导则使用小写d。  echo date('Y-M-j');   //例:2007-Feb-6  echo date('Y-F-jS');  //例:2007-February-6     大写M表示月份的3个缩写字符,而大写F表示月份的英文全写。(没有小写f)  大写S表示日期的后缀,比如“st”、“nd”、“rd”和“th”,具体看日期数字为何。  小结:  表示年可以用大写的Y和小写y;  表示月可以用大写F、大写M、小写m和小写n(分别表示字符和数字的两种方式);  表示日可以用小写d和小写j,大写S表示日期的后缀。  2,时:分:秒  默认情况下,PHP解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时。  echo date('g:i:s a');    //例:5:56:57 am  echo date('h:i:s A');    //例:05:56:57 AM     小写g表示12小时制,无前导0,而小写h则表示有前导0的12小时制。  当使用12小时制时需要表明上下午,小写a表示小写的“am”和“pm”,大写A表示大写的“AM”和“PM”。  echo date('G:i:s');14:02:26     大写G表示24小时制的小时数,但是不带前导的;使用大写的H表示带前导的24小时制小时数  小结:  字母g表示小时不带前导,字母h表示小时带前导;  小写g、h表示12小时制,大写G、H表示24小时制。  3,闰年、星期、天   大写L表示判断今年是否闰年,布尔值,为真返回1,否则为0;  小写l表示当天是星期几的英文全写(Tuesday);  而使用大写D表示星期几的3个字符缩写(Tue)。  echo date('w');    //例:今天星期:2  echo date('W');    //例:本周是全年中的第 06 周     小写w表示星期几,数字形式表示  大写W表示一年中的星期数  echo date('t');    //例:本月是 28 天  echo date('z');    //例:今天是今年的第 36 天     小写t表示当前月份又多少天  小写z表示今天是本年中第几天  4,其他  echo date('T');    //例:UTC     大写T表示服务器的时间区域设置  echo date('I');    //例:0     大写I表示判断当前是否为夏令时,为真返回1,否则为0  echo date('U');    //例:1170769424     大写U表示从1970年1月1日到现在的总秒数,就是Unix时间纪元的UNIX时间戳。  echo date('c');    //例:2007-02-06T14:24:43+00:00     小写c表示ISO8601日期,日期格式为YYYY-MM-DD,用字母T来间隔日期和时间,时间格式为HH:MM:SS,时区使用格林威治标准时间(GMT)的偏差来表示。  echo date('r');    //例:Tue, 06 Feb 2007 14:25:52 +0000     小写r表示RFC822日期。  9.2.2 获取日期信息:getdate()函数 语法:      array getdate(int timestamp)     该函数返回数组形式的日期时间信息,如果没有时间戳,则以当前时间为准。该函数返回的关联数组元素的说明如表9-2所示:  表9-2:getdate()函数返回的关联数组元素说明  元  素  说  明   seconds  秒,返回值0~59   minutes  分钟,返回值为0~59   hours  小时,返回值为0~23   mday  月份中第几天,返回值为1~31   wday  星期中第几天,返回值为0(星期天)~6(星期六)   mon  月份数字,返回值为1~12   year  4位数字表示的完整年份,返回值加2000或2008   yday  一年中第几天,返回值0~365   weekday  星期几的完整文本表示,返回值为Sunday~Saturday   month  月份的完整文本表示,返回值为January~December   0  返回从UNIX纪元开始的秒数    例:  

";      echo "Today is the $arr[yday]th of year";  ?>     效果:   9.3  UNIX时间戳 时间戳是文件属性中的创建、修改、访问时间。数字时间戳服务(digital time stamp service, DTS)是web网站安全服务项目之一,能提供电子文件的日期和时间信息的安全保护。  9.3.1  什么是时间戳 时间戳是一个经加密后形成后的凭证文档,它包括3个部分:  ²  需要添加时间戳的文件用Hash编码加密形成摘要。  ²  DTS接受文件的日期和时间信息。  ²  对接受的DTS文件加密。  数字时间是由认证单位DTS来添加的,以DTS接收到文件的时间为依据。  时间戳的作用原理是通过其他加密法将时间的数值转换为加密的数值,时间变化后加密的数值也随之变化。  时间戳的优点是:变化的加密数值来防止数值被窃取后非法重复利用,也就起到了加密的作用。时间戳主要依赖于时间,在约定的一段时间内产生唯一的一个数值。  9.3.2 获取本地时间戳:mktime()函数 语法:  int mktime(int hour, int minute, int month, int day, int year, int [is_dst])     表9-3:mktime()函数的参数说明  参  数  说  明   hour  小时数   minute  分钟数   second  秒数(一分钟之内)   month  月份数   day  天数   year  年份数   is_dst  参数is_dst在夏令时可以被设置为1,如果不是则设置为0;如果不确定是否为夏令时则设置为-1(默认值)    注意:有效的时间戳典型范围是格林尼治时间1901年12月13日20:45:54~2038年1月19日03:13:07(此范围符合32位有符号整数的最小值和最大值)。在Windows系统中此范围限制为从1970年1月1日~2038年1月19日。  例:  

";      echo "当前的日期为:".date("Y-m-d",mktime())."

";      echo "当前的时间是:".date("H:i:s",mktime());  ?>     效果:   9.4  系统时区设置 很多学员在学习过程中发现通过date()函数获取到的时间跟本地时间不一样,这是由于PHP5对date()函数进行了重写,因此,目前的日期时间函数比系统时间少8个小时。在PHP语言中默认设置的是标准的格林威治时间(即采用的是零时区)。  更改PHP语言中的时区设置主要有以下两种方法:  1. 修改php.ini文件中的设置,找到[date]下的;date.timezone = 选项,将该项修改为date.timezone=Asia/Hong_Kong,然后重新启动apache服务器。  2. 在应用程序中,使用时间日期函数之前添加如下函数:  date_default_timezone_set(“Asia/Hong_Kong”);     设置完成后,date()函数就可以正常使用了,不会再出现时差问题。  9.5  时间开发中遇到的日期和时间问题 9.5.1 比较两个时间的大小 在实际开发中经常遇到判断两个时间的大小,PHP中的时间是不可以直接来进行比较的。所以,首先要将时间输出为时间戳的格式,然后再进行比较,这是常用到的方法。  有两个函数都可以实现这个功能,这里使用strtotime()函数,该函数可以将任何英文文本的日期时间描述解析为UNIX时间戳。该函数的语法为:  int strtotime(string time, int now)         该函数有两个参数。如果参数time的格式是绝对时间,则now参数不起作用;如果参数time的格式是相对时间,那么其对应的时间就是参数now来提供的,如果没有提供参数now,对应的时间就是当前时间。如果解析失败,则返回-1.  例:  ";    //输出两个时间变量      echo "变量/$time2的时间为:".$time2."
";      if (strtotime($time1)-strtotime($time2)<0) {     //对两个时间进行比较          echo "/$time1早于/$time2";   //如果time1-time2<0说明time1的时间在前      }else{          echo "/$time2早于/$time1";   //否则&#xff0c;说明time2的时间在前      }  ?>     效果&#xff1a;   9.5.2  计算两个日期的差值     strtotime()函数除了可以比较两个日期的大小&#xff0c;还可以精确地知道两个日期的差值。下面通过一个倒计时的小程序来为学员们讲解如何用strtotime()函数来计算两个日期的差值。  

";       echo "离北京奥运开幕还有$sub2 天!!!";  ?>     效果&#xff1a;   9.5.3 计算页面脚本的运行时间     在浏览网站时&#xff0c;经常会用到搜索引擎&#xff0c;在搜索信息时&#xff0c;细心的用户会发现&#xff0c;在搜索结果的最下方&#xff0c;一般都有“搜索时间为……秒”的字样。  这里使用到了microtime()函数&#xff0c;该函数返回当前UNIX时间戳和微秒数。返回格式为msec sec的字符串&#xff0c;其中sec是当前的UNIX时间戳&#xff0c;msec为微秒数。该函数的格式为&#xff1a;  string microtime(void)         下面我们来计算一下上例的运行时间&#xff0c;代码如下&#xff1a;  

";       echo "离北京奥运开幕还有$sub2 天!!!";       $end_time &#61; run_time();  ?>   

  该示例的运行时间为  秒     效果&#xff1a;

小编推荐&#xff1a;欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术&#xff0c;请 点击这里注册账号&#xff0c;公开课频道价值万元IT培训教程免费学&#xff0c;让您少走弯路、事半功倍&#xff0c;好工作升职加薪&#xff01;

免责声明&#xff1a;本站系公益性非盈利IT技术普及网&#xff0c;本文由投稿者转载自互联网的公开文章&#xff0c;文末均已注明出处&#xff0c;其内容和图片版权归原网站或作者所有&#xff0c;文中所述不代表本站观点&#xff0c;若有无意侵权或转载不当之处请从网站右下角联系我们处理&#xff0c;谢谢合作&#xff01;



推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
author-avatar
shamrock-wrh_186
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有