【PHP】microtime 与 time 函数介绍

又到了学习php函数的时间了,这一次我为了简单的计算程序耗时,就用了一下microtime函数,不过它和我们平常用的 time函数不一样,它会返回一个字符串! 所以我们要理解这个字符串到底是什么意思!

首先我们想一下,microtime的生成与什么有关,会不会与时区有关呢? 我们要选一个格林威志时间 和我们的本地时间做一个比较。

1. 1 修改时区对microtime的影响

<?php
ini_set("date.timezone","Etc/GMT"); // 格林威志时间
$gmtTime = microtime();
ini_set("date.timezone", "Asia/Shanghai"); // 北京-上海时间
$gmt8Time = microtime();
var_dump($gmtTime,$gmt8Time);
exit;

结果为
string(21) “0.88501200 1458222892”
string(21) “0.88504000 1458222892”

看得出来在,前一个字符串里面有 2800的差距.(经过测试后发现,该值是不固定的)

目前还无法得出修改时区对microtime是否有影响,那么我们测试一下time()函数会不会有影响。

1.2 修改时区对time的影响

<?php
ini_set("date.timezone","Etc/GMT"); // 格林威志时间
$gmtTime = time();
ini_set("date.timezone", "Asia/Shanghai");
$gmt8Time = time();
var_dump($gmtTime,$gmt8Time);
exit;

结果为
int(1458223153)
int(1458223153)

小结: 这里我们可以大概知道,不管事time还是microtime函数,它们生成的是一个GMT+0 的时间戳,不会因为设置了时区而改变,通过时间戳 + 设置的时区获取本地时间。 而microtime 的后半部分表示的是秒的时间戳,前半部分则表示的是微秒。

2.1 介绍microtime()函数
microtime函数支持一个bool参数,如果传入false(默认),表示返回一个字符串,微秒与秒用空格分隔.如果传入true,那么就会返回一个float类型,保留4为小数

<?php
var_dump(microtime(),microtime(true));
exit;

结果为
string(21) “0.41481300 1458223669”
float(1458223669.4148)

2.2 读取微秒数转换为double类型 (实际效果与microtime(true)一致)

<?php
$gmtTime = microtime();
list($microSeconds, $seconds) = explode(" ",$gmtTime);
echo (float)$microSeconds + $seconds;
exit;

3. 介绍time()函数

<?php
echo time();

可以使用该函数获取当前的时间戳,符合数据库的timestamp类型格式。

总结: time()函数和 microtime()函数出现在项目里是非常常见的。所以我们也要认真的了解这两个函数的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值