PHP获取当前时间的5种实现方式

在日期和时间函数中,UNIX 时间戳的获取非常重要,时间戳是一个字符序列,是指格林尼治时间 1970年 01 月 01 日 00 时 00 分 00 秒(北京时间 1970 年 01 月 01 日 08 时 00 分 00 秒)起至现在的总毫秒数。下面介绍几个获取当前时间的函数。

gmmktime()

gmmktime() 函数可取得 GMT 日期的 UNIX 时间戳。语法如下:

int gmmktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )

该函数的参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。

使用示例如下:

<?php
echo gmmktime(); //没有设置参数, 则默认取得当前GMT时间
echo gmmktime(0,45,3,7,7,2016); //设置参数表示GMT时间2016年7月7日0点45分3秒
?>

执行以上程序的打印结果为:
1467909956   1467852303

mktime()

mktime() 也可取得一个日期的 UNIX 时间戳。语法如下:

int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )

该函数根据给出的参数返回 UNIX 时间戳。时间戳是一个长整数,包含了从 UNIX 纪元到给定时间的秒数。

和 gmmktime() 函数一样,该函数的参数也可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。

使用示例如下:

<?php
echo mktime(); // 没有设置参数则默认取得当前GMT时间
echo mktime(0,45,3,7,7,2016); //设置参数表示GMT时间2016年7月7日0点45分3秒
?>

执行以上程序的打印结果为:
1467910465 1467852303

microtime()

microtime() 可获得当前 UNIX 时间戳和微秒数。语法如下:

mixed microtime ([ bool $get_as_float ] )

如果设置 get_as_float 参数值为 true,microtime() 将返回一个浮点数;若不带参数,则返回一个“msec sec”格式的字符串,其中 sec 是自 UNIX 纪元起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。

使用示例如下:

<?php
echo microtime(); //返回 msec sec 格式字符串表示时间
echo "<br/>";
echo microtime(true); //返回一个浮点型字符串表示时间
?>

执行以上程序的打印结果如下:
0.40474900 1467910862
1467910862.4048

time()

time() 函数可返回当前的 UNIX 时间戳。语法如下:

int time ( void )

time() 函数的语法比较简单,使用示例如下:

<?php
echo time();
?>

执行以上程序的打印结果为:
1467911104

getdate()

getdate() 可取得日期时间信息。语法如下:

array getdate ([ int $timestamp = time() ] )

该函数返回一个根据 timestamp 得出的包含有日期信息的关联数组 array。如果没有给出时间戳,则认为是当前本地时间(此时和 time() 函数取值相同)。

其返回的关联数组中的键名单元如表所示。

getdate() 函数返回关联数组键名

键名 说明 返回值例子
seconds 秒的数字表示 0 到 59
minutes 分钟的数字表示 0 到 59
hours 小时的数字表示 0 到 23
mday 月份中第几天的数字表示 1 到 31
wday 星期中第几天的数字表示 0(周日)到6(周六)
mon 月份的数字表示 1 到 12
year 4 位数字表示的完整年份 比如:1999 或 2019
yday 一年中第几天的数字表示 0 到 365
weekday 星期几的完整文本表示 Monday 到 Sunday
month 月份的完整文本表示,,比如 January 或 April January 到 December
0 自从 UNIX 纪元开始至今的秒数,和 time() 的返回值以及用于 date() 的值类似 系统相关,典型值为 -2147483648 ~ 2147483647

getdate() 函数的使用示例如下:

<?php
echo "<pre>";
var_dump(getdate());
?>

执行以上程序的打印结果如下:
array(11) {
    ["seconds"]=>int(57)
    ["minutes"]=>int(18)
    ["hours"]=>int(17)
    ["mday"]=>int(7)
    ["wday"]=>int(4)
    ["mon"]=>int(7)
    ["year"]=>int(2016)
    ["yday"]=>int(188)
    ["weekday"]=>string(8) "Thursday"
    ["month"]=>string(4) "July"
    [0]=>int(1467911937)
}

到此这篇关于PHP获取当前时间的5种实现方式的文章就介绍到这了,更多相关PHP获取当前时间内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • php获取当前时间的毫秒数的方法

    php本身没有提供返回毫秒数的函数,但提供了一个microtime()函数,该函数返回一个array,包含两个元素,一个是秒数,一个是小数表示的毫秒数,借助此函数,可以很容易定义一个返回毫秒数的函数,例如: 复制代码 代码如下: function getMillisecond() { list($s1, $s2) = explode(' ', microtime()); return (float)sprintf('%.0f', (floatval($s1) + floatval($s2)) *

  • 在php MYSQL中插入当前时间

    NOW()函数以`'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,可以直接存到DATETIME字段中. CURDATE()以'YYYY-MM-DD'的格式返回今天的日期,可以直接存到DATE字段中. CURTIME()以'HH:MM:SS'的格式返回当前的时间,可以直接存到TIME字段中. 例:insert into tablename (fieldname) values (now())

  • PHP setTime 设置当前时间的代码

    复制代码 代码如下: function _niceTime($minute){ $m = $minute - 5; $date = new DateTime(); $date->setTime(9, 00);//设置每天早上9点 return date("Y-m-d H:i",strtotime("+$m minute",$date->getTimestamp())); }

  • php中用date函数获取当前时间有误的解决办法

    初学PHP做网站,想在页面上获得当前时间,学过编程的人都知道用时间函数date(),先用这个函数格式化一个本地时间/日期,先写个测试代码吧,结果输出时间比实际时间少了8小时,这是什么原因呢: 复制代码 代码如下: <?php     echo date('Y-m-d H:i:s'); ?〉 输出当前时间:2008-10-12 02:32:17 怪了,实际时间是:2008-10-12 10:32:17 难道是PHP的date()时间不正确 少8个小时? 再看看PHP手册的"例子 1. dat

  • PHP获取当前时间的5种实现方式

    在日期和时间函数中,UNIX 时间戳的获取非常重要,时间戳是一个字符序列,是指格林尼治时间 1970年 01 月 01 日 00 时 00 分 00 秒(北京时间 1970 年 01 月 01 日 08 时 00 分 00 秒)起至现在的总毫秒数.下面介绍几个获取当前时间的函数. gmmktime() gmmktime() 函数可取得 GMT 日期的 UNIX 时间戳.语法如下: int gmmktime ([ int $hour [, int $minute [, int $second [,

  • java 获取当前时间的三种方法

    总结java里面关于获取当前时间的一些方法 System.currentTimeMillis() 获取标准时间可以通过System.currentTimeMillis()方法获取,此方法不受时区影响,得到的结果是时间戳格式的.例如: 1543105352845 我们可以将时间戳转化成我们易于理解的格式 SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z"); Date date = n

  • java获取当前时间的四种方法代码实例

    这篇文章主要介绍了java获取当前时间的四种方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 第一种:Date类 public class DateDemo { public static void main(String[] args) { Date day = new Date(); SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); S

  • mysql自动填充时间的两种实现方式小结

    目录 mysql自动填充时间的两种方式 方法一:数据库级别 方式二:代码级别 mysql自动填充时间的两种方式 mysql建表的时候有两个列,一个是createtime.另一个是updatetime 当插入一条数据,createtime列和updatetime列由数据库获取当前时间自动创建时间 当修改一条记录时,updatetime列由数据库获取按当前时间自动更新时间 方法一:数据库级别 (工作中不允许你修改数据库),一般我们采用方法二 1.在表中新增字段 create_time, update

  • php获取远程图片的两种 CURL方式和sockets方式获取远程图片

    方式1:sockets 复制代码 代码如下: $a = "http://jb51.net/content/uploadfile/201106/thum-f3ccdd27d2000e3f9255a7e3e2c4880020110622095243.jpg"; $local = 'socket1.gif'; $aa = getImg($a,$local); /* *@ 完整的图片地址 *@ 要存储的文件名 */ function getImg( $url = "", $

  • jsp中获取状态怎么写(两种实现方式)

    今天写项目中,遇到这种问题,由于框架是2005年的,jsp中不能存放标签,只能有java代码来写了,以下是我写的例子两种例子都能成功的! 也写了在jsp中使用标签的写法 在jsp中写java代码 方法一: 状态: 复制代码 代码如下: <select name="states"> <option value="0" <%="0".equalsIgnoreCase(states)?"selected":&

  • Python获取网络时间戳的两种方法详解

    目录 方法一 代码实现 调用方法 返回结果 方法二 代码实现 调用方法 返回结果 在我们进行注册码的有效期验证时,通常使用获取网络时间的方式来进行比对. 以下为获取网络时间的几种方式. 方法一 需要的时间会比较长,个别电脑上可能会出现不兼容现象 代码实现 def get_web_server_time(self, host_URL, year_str='-', time_str=':'): ''' 获取网络时间,需要的时间会比较长,个别电脑上可能会出现不兼容现象 :param host_URL:

  • java获取登录者IP和登录时间的两种实现代码详解

    第一种直接用java自带的InetAddress类: import java.net.InetAddress; import java.text.SimpleDateFormat; import java.util.Date; public class test{ public static void main(String[] args) throws Exception{ InetAddress addr = InetAddress.getLocalHost(); String ip=add

  • Java 获取当前系统时间的三种方法

    准备工作: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; 方式一: /**  * 获取系统当前时间之方式一  * @explain 使用Calendar实现  * @param format  * @return  */ public static String getSysdateStr(String format) {     Date sysdate = Calend

  • Docker 解决获取容器获取的时间不是本地时间的问题

    docker 获取容器获取的时间出错问题解决: 在使用Docker部署网站的时候,无意间发现容器里面的时间竟然是美国时间,被雷到了,不过解决办法也很简单,有两种办法 1.重新启动一个容器,加上如下参数,即可使用宿主机时间 $ -v /etc/localtime:/etc/localtime:ro # docker run -d -v /etc/localtime:/etc/localtime:ro [image] 2.假如,你不想重新启动,或者不能重新启动,也没关系,可以直接把文件复制到容器内,

随机推荐