1. 将日期和时间转变为时间戳

  1.1 time()

    原型:time(void)

    作用:返回当前时间的 UNIX时间戳。

    参数:void,可选(即无参数)

  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

        

    

PHP的日期和时间处理函数的更多相关文章

  1. MySQL 日期、时间转换函数

    MySQL 日期.时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式.它是 str_to ...

  2. 按年、季度、月分组&&计算日期和时间的函数

    Mysql 按年.季度.月分组 按月度分组: select DATE_FORMAT(i.created_at, '%Y-%m月')...................GROUP BY DATE_FO ...

  3. MySQL【日期和时间处理函数】的使用方法

    名称 调用示例 示例结果 描述 NOW NOW() 2018-09-19 09:24:10 返回当前日期和时间 CURDATE CURDATE() 2018-09-19 返回当前日期 CURTIME ...

  4. Sql Server系列:日期和时间函数

    1. 获取系统当前日期函数GETDATE() GETDATE()函数用于返回当前数据库系统的日期和时间,返回值的类型为datetime. SELECT GETDATE() 2. 返回UTC日期的函数G ...

  5. Sql Server函数全解(四)日期和时间函数

      日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外,也可以使用datetime类型的参数,但会忽略这些值的时间部分.相同 ...

  6. Sql Server函数全解<四>日期和时间函数

    原文:Sql Server函数全解<四>日期和时间函数   日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外, ...

  7. 开发过程中 的一些 补充知识点 + 关于mysql中的日期和时间函数?

    参考: https://www.jb51.net/article/23966.htm https://yq.aliyun.com/articles/260389 mysql中的 日期格式是: HHHH ...

  8. 日期时间函数 mysql 和sqlserver 中对于常用函数的日期和时间函数的区别

    1. sqlserver中获取时间用getdate(),默认返回格式是2019-01-21 13:58:33.053,具体的年月日,时分秒毫米,年月日之间用短线连接,时分秒之间用冒号连接,秒和毫米之间 ...

  9. Mysql日期转换函数、时间转换函数

    Mysql日期转换函数.时间转换函数 一.MySQL 获得当前日期时间 函数 1,获得当前日期+时间(date + time)函数:now(): select now(); 结果: :: 2,获得当前 ...

随机推荐

  1. PHP Math 函数

    abs() 绝对值. 3 acos() 反余弦. 3 acosh() 反双曲余弦. 4 asin() 反正弦. 3 asinh() 反双曲正弦. 4 atan() 反正切. 3 atan2() 两个参 ...

  2. RedHat Enterprise Linux 6.4 使用 Centos 6 的yum(转)

    概述 redhat的yum源需注册付费,费时费力,整理RedHat yum 安装CentOS的方法. 安装系统文件 系统:RedHat Enterprise Linux 6.4-x86_64 md5: ...

  3. SecureCRT在远程主机和本地之间传输文件

    概述 Linux系统不像Window系统有清晰的操作页面,数据能Copy下来,远程Linux的数据,就牵扯到本地数据与远程服务器数据交换的问题.Linux远程攻击SecureCrt提供了2种方式,可以 ...

  4. Hive的三种安装方式(内嵌模式,本地模式远程模式)

    一.安装模式介绍:     Hive官网上介绍了Hive的3种安装方式,分别对应不同的应用场景.     1.内嵌模式(元数据保村在内嵌的derby种,允许一个会话链接,尝试多个会话链接时会报错)   ...

  5. Mac下golang开发环境配置

    go语言在开发效率和运行效率中的优势让很多人青睐,所以有倾向打算转向go语言的开发. 下面介绍在Mac OS X中golang的开发环境配置. 1.安装brew brew是一个mac下的由ruby开发 ...

  6. Beginning Scala study note(3) Object Orientation in Scala

    1. The three principles of OOP are encapsulation(封装性), inheritance(继承性) and polymorphism(多态性). examp ...

  7. 用Redis实现Session功能

    0.什么是Redis Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API ---维基百科 1.与其他用户状态保存方 ...

  8. 《DSP using MATLAB》示例Example5.23

    代码: conv_time = zeros(1,150); fft_time = zeros(1, 150); % % Nmax = 2048; for L = 1:150 tc = 0; tf = ...

  9. 解决autolt上传图片报错cannot open system clipboard

    今天调试代码,发现本地可以上传图片,但是集成环境无法上传报错cannot open system clipboard: 百度查了下,我的系统没有剪切板程序,才报错. 验证方法如下: win+r,输入c ...

  10. CGrowableArray解析 _ DXUT容器

    CGrowableArray的声明                                       in  DXUTmisc.h //--------------------------- ...