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

PHP的日期和时间处理函数

1.2 mktime() 原型:int mktime([int hour[,int minute[,int second[,int month[,int day[,int year]]]]]]) 作

1.2 mktime()



原型:int mktime([int hour[,int minute[,int second[,int month[,int day[,int year]]]]]])

作用:将给定日期和时间转变成UNIX时间戳



参数:该函数中所有参数都是可选的,如果参数为空,默认将当前时间转变成UNIX时间戳。这样,和直接调用time()函数获取当前的UNIX时间戳功能相同。参数也可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。如果只想转变日期,对具体的时间不在乎,可以将前三个转变时间的参数都设置为0。mktime()函数对于日期运算和验证非常有用,它可以自动校正越界的输入。

代码示例:

echo date("Y-m-d",mktime(0,0,0,12,36,2008))."\n"; //日期超过31天,计算后输出:2009-01-05

echo date("Y-m-d",mktime(0,0,0,14,1,2010))."\n"; //月份超过12月,计算后输出:2011-02-01

1.3 strtotime()

原型:int strtotime(string time[,int now])

作用:用英语的自然语言创建某个时刻的时间戳,接受一个包含美国英语日期格式的字符串并尝试将其解析为UNIX时间戳(自January 1 1970 00:00:00 GMT起的秒数),其值相对于now参数给出的时间,如果没有提供此参数则用系统当前时间。该函数执行成功后则返回时间戳,否则返回FALSE。

代码示例:

echo date("Y-m-d",strtotime("now")); //输出:2015-07-24

echo date("Y-m-d",strtotime("24 july 2015")); //输出:2015-07-24

echo date("Y-m-d",strtotime("+1 day")); //输出:2015-07-25

echo date("Y-m-d",strtotime("last monday")); //输出:2015-07-20

2 在PHP中获取日期和时间

2.1 getdate()

原型:getdate(timestamp)

作用:取得日期/时间信息。

参数:timestamp:可选的UNIX时间戳,如果没有给出时间戳,则认为是当前本地时间。

返回值:返回一个由时间戳组成的关联数组,总共返回11个数组元素,如下所示:

键名 描述 返回值例子

hours 小时的数值表示 0~23

mday 月份中日的数值表示 1~31

minutes  分钟的数值表示 0~59

mon 月份的数值表示 1~12

month 月份的完整文本表示 January~December

seconds 秒的数值表示 0~59

wday 一周中日的数值表示 0~6(0表示星期日)

weekday 一周中日的完整文本表示 Sunday~Saturday

yday 一年中日的数值偏移 0~365

year 年份的4位表示 例如:1999或2009

0  自从UNIX纪元开始至今的秒数,和time()的返回值以及用于date()的值类似 系统相关,典型值为从-2147483648~2147483647

代码示例:如果将 2009年10月1日,07:30:50 EDT 转变为UNIX时间戳1254382250表示,并将其传给getdate()函数,查看各元素如下:

array (

'seconds'

'minutes'

'hours'

'mday'

'wday'

'mon'

'year'

'yday'

'weekday' = string 'Thursday' (length=8)

'month' = string 'October' (length=7)

0

)

2.2 date()

原型:string date(string format[,int timestamp])

作用:用于对日期或时间进行格式化。

参数:该函数有两个参数,第一个参数是必需的,规定时间戳的转换格式。第二个参数是可选的,需要提供一个UNIX时间戳,如果没有指定这个UNIX时间戳,默认值为time()将返回当前的日期和时间。

返回:返回一个格式化后表示适当日期的字符串。

代码示例:

echo date("Y年m月d日 H:i:s"); //格式化一个本地时间和日期

echo date("Y-m-d H:i:s"); //输出:2015-07-24 11:48:13

echo date("Y-m-d",1437709743); //输出:2015-07-24

3.修改PHP的默认时区

PHP默认的时区设置是UTC时间,而北京正好位于时区的东八区,领先UTC8个小时。所以在使用PHP中像time()等获取当前时间的函数时,得到的时间总是不对,表现是和北京时间相差8个小时。如果希望正确地显示北京时间,就需要修改默认的时区设置。可以通过以下两种方式完成。

(1)如果使用的是独立的服务器,有权限修改配置文件,设置时区就可以通过修改php.ini中的date.timezone属性完成。我们可以将这个属性的值设置为"Asia/Shang"、"Asia/Chongqing"、"Etc/GMT-8"或PRC等中的一个,再在PHP脚本中获取当前的时间就是北京时间。修改PHP的配置文件如下所示:

date.timezOne= Etc/GMT-8

(2)如果使用的是共享服务器,没有权限修改配置文件php.ini,并且PHP版本又在5.1.0以上,也可以在输出时间之前调用date_default_timezone_set()函数设置时区。该函数需要提供一个时区标识符作为参数,和配置文件中date.timezone属性的值相同。该函数的使用如下所示:

date_default_timezone_set("PRC");
echo date("Y-m-d H:i:s",time());

4.使用微妙计算PHP脚本执行时间

microtime()

原型:mixed microtime([bool get_as_float])

作用:返回当前UNIX时间戳和微妙数

参数:该函数有一个可选的布尔型参数,如果在调用时不提供这个参数,本函数以"msec sec"的格式返回一个字符串。其中sec是自UNIX纪元起到现在的毫秒数,而msec是微妙部分,字符串的两部分都是以秒为单位返回的。如果给出了get_as_float参数并且其值等价于TRUE,microtime()函数将返回一个浮点数。在小数点前面还是以时间戳的格式表示,而小数点后面则表示微妙的值。但要注意参数get_as_float是在PHP5.0版本中添加的,所以在PHP5.0以前的版本中,不能直接使用该参数请求一个浮点数。

代码示例:

class Timer{
    private $startTime = 0;
    private $stopTime = 0;

function start()
    {
      $this- startTime = microtime(true);
    }

function stop()
    {
      $this- stopTime = microtime(true);
    }

function spent()
    {
     return round($this- stopTime - $this- startTime,4);
   }
}
$timer = new Timer();

$timer- start();
usleep(1000);
$timer- stop();
echo "执行脚本用时 b ".$timer- spent()." /b //输出:执行脚本用时0.0008


   



推荐阅读
  • 获取时间的函数js代码,js获取时区代码
    本文目录一览:1、js获取服务器时间(动态)2 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文介绍了PHP常量的定义和使用方法,包括常量的命名规则、大小写敏感性、全局范围和标量数据的限制。同时还提到了应尽量避免定义resource常量,并给出了使用define()函数定义常量的示例。 ... [详细]
  • Summarize function is doing alignment without timezone ?
    Hi.Imtryingtogetsummarizefrom00:00otfirstdayofthismonthametric, ... [详细]
  • linux时间字符串转正常时间 ... [详细]
  • 本文介绍了如何将CIM_DateTime解析为.Net DateTime,并分享了解析过程中可能遇到的问题和解决方法。通过使用DateTime.ParseExact方法和适当的格式字符串,可以成功解析CIM_DateTime字符串。同时还提供了关于WMI和字符串格式的相关信息。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • MySQL数据库查询注意事项及查询命令详解
    本文介绍了在进行MySQL数据库查询时需要注意的地方,包括启动informix数据库的命令oninit,查询状态的命令onstat,以及相关的网址链接。同时还详细解释了oninit命令的用法和参数,包括初始化磁盘空间和共享内存、保留在线模式等。对于需要进行MySQL数据库查询的读者,本文提供了实用的查询命令和相关注意事项,帮助读者更好地进行数据库查询。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • TableAPI报一下异常:FieldtypesofqueryresultandregisteredTableSink
    报错信息如下:Exceptioninthread“main”org.apache.flink.table.api.ValidationException:Fieldtypesofq ... [详细]
  • ZendCache:让网站飞起来
    php教程|php手册zend,ZendCache,PHP,Cache,comphp教程-php手册对商业网站来说,效率是十分重要的。在一些电子商务的站点上,服务器的响应速度决定了 ... [详细]
  • 定义函数functionf(){}调用函数f();可变函数functionf(){}$f1f;$f1();匿名函数$ffunction($ ... [详细]
author-avatar
Still丶某某_546
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有