热门标签 | 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;



推荐阅读
  • Linux中tput命令怎么用
    这篇文章主要介绍Linux中tput命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Linux常用命令tput命令将通过ter ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文详细介绍了如何使用C#实现不同类型的系统服务账户(如Windows服务、计划任务和IIS应用池)的密码重置方法。 ... [详细]
  • 一、使用Microsoft.Office.Interop.Excel.DLL需要安装Office代码如下:2publicstaticboolExportExcel(S ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 网络安全实验:Telnet与SSH服务对比及抓包分析
    本实验旨在对比Telnet和SSH两种安全通信协议的服务差异,并通过搭建服务器和使用Wireshark抓包工具进行详细分析。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]
  • 编码unicode解决了语言不通的问题.但是.unicode又有一个新问题.由于unicode是万国码.把所有国家的文字都编进去了.这就导致一个unicode占用的空间会很大.原来 ... [详细]
  • 本文基于Java官方文档进行了适当修改,旨在介绍如何实现一个能够同时处理多个客户端请求的服务端程序。在前文中,我们探讨了单客户端访问的服务端实现,而本篇将深入讲解多客户端环境下的服务端设计与实现。 ... [详细]
  • linux网络子系统分析(二)—— 协议栈分层框架的建立
    目录一、综述二、INET的初始化2.1INET接口注册2.2抽象实体的建立2.3代码细节分析2.3.1socket参数三、其他协议3.1PF_PACKET3.2P ... [详细]
  • php日期处理函数(php处理时间的常用函数) ... [详细]
  • 本文将深入探讨C语言代码的可重用性,解释其重要性和实现方法。通过具体示例,我们将展示如何通过封装和模块化设计提高代码的可重用性。 ... [详细]
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社区 版权所有