最近在做一个智能家居项目的后台,需要实时上传用户对智能设备的配置信息到服务器,以便实现同步,因此对于时间的精确度要求比较高,最开始直接是用php的time()函数来获取时间戳,获取的时间精确到秒级别,如果客户端同时操作的话还是有可能产生冲突,因此建议将时间戳精度提高到毫秒级别,但是在php没有自带的函数能获取毫秒时间戳,但提供了一个microtime()函数,如果调用时不带可选参数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。

microtime()函数的详细说明,可以到w3chool上面看看《PHP microtime() 函数》。

<?php
echo microtime();
//输出结果是
//0.25139300 1138197510

注意了,它的结果是分两部分的,也就是前半部分是毫秒(但是单位是秒),后半部分是秒。
现在,我们依据这个做下修改,如下:

<?php
list($msec, $sec) = explode(' ', microtime());
$msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);

这样就可以了,$msectime就是当前的毫秒数!可以将这两行封装成一个函数方便使用。

<?php
//返回当前的毫秒时间戳
function msectime() {list($msec, $sec) = explode(' ', microtime());$msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);return $msectime;
}

注意:sprintf('%.0f', $num) 是输出不含小数部分的浮点数

事情还没有结束,我把时间戳改成毫秒级别后,再次更新数据库数据时,却提示超出范围,原来之前我在数据库中是用int型来存储time()函数获取的秒级别的时间戳,存储范围是够的,改成毫秒级别的,就得改成BIGINT类型了。

整数类型         字节          范围(有符号)            范围(无符号)                用途 

TINYINT           1字节        (-128,127)                       (0,255)                    小整数值

SMALLINT          2字节     (-32 768,32 767)                    (0,65 535)                 大整数值

MEDIUMINT         3字节    (-8 388 608,8 388 607)               (0,16 777 215)             大整数值

INT或INTEGER      4字节   (-2 147 483 648,2 147 483 647)       (0,4 294 967 295)            大整数值

BIGINT            8字节   (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值

PHP获取当前毫秒时间戳相关推荐

  1. JavaScript 获取当前毫秒时间戳

    function getTime(){             //第一种方法   1498627266000             var timestamp1 =Date.parse(new D ...

  2. 【python 时间戳】python获取13位时间戳以及时间戳转换

    无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教程.人工智能教程 java默认精度是 ...

  3. PHP获取毫秒时间戳,利用microtime()函数

    PHP获取毫秒时间戳,利用microtime()函数 php本身没有提供返回毫秒数的函数,但提供了一个microtime()函数,借助此函数,可以很容易定义一个返回毫秒数的函数. php的毫秒是没有默 ...

  4. php获取时间到微妙,php 获取毫秒时间戳

    在开发的过程中,请求接口时,经常以时间戳作为双方约定好的参数.那此时一定要再追问一句,是10位时间戳还是13位时间戳,即为毫秒时间戳. 在工程中,搜索底层函数,获得了php语言下对于毫秒时间戳的两种主 ...

  5. Windows两种获取毫秒时间戳的方法

    windows平台获取毫秒时间戳的两种方法 通过 ftime 获取毫秒时间戳 #include <sys/timeb.h>uint64_t TimeMilliSecond() {timeb ...

  6. PHP实现获取毫秒时间戳的方法

    PHP获取毫秒时间戳,利用microtime()函数 php本身没有提供返回毫秒数的函数,但提供了一个microtime()函数,借助此函数,可以很容易定义一个返回毫秒数的函数. php的毫秒是没有默 ...

  7. php time 毫秒_PHP microtime()函数获取毫秒时间戳

    PHP获取毫秒时间戳,利用microtime()函数 php本身没有提供返回毫秒数的函数,但提供了一个microtime()函数,借助此函数,可以很容易定义一个返回毫秒数的函数. php的毫秒是没有默 ...

  8. php 获取毫秒函数,PHP实现获取毫秒时间戳的方法【使用microtime()函数】

    本文实例讲述了PHP实现获取毫秒时间戳的方法.分享给大家供大家参考,具体如下: PHP获取毫秒时间戳,利用microtime()函数 php本身没有提供返回毫秒数的函数,但提供了一个microtime ...

  9. 获取当前时间的毫秒时间戳

    list($msec, $sec) = explode(' ', microtime());     # 0.85447400 1543975789 $msectime = (float)sprint ...

最新文章

  1. 探讨.NET Core中实现AES加密和解密以及.NET Core为我们提供了什么方便!
  2. C#----DataGridView控件60招(一) [转]
  3. 【VS开发】【DSP开发】WinDriver简介(或介绍)
  4. Android 沙箱开源,Android Sandbox(沙箱)开源工具介绍
  5. c++ map 析构函数_C++|类继承关系中的虚函数、虚析构函数、虚基类
  6. 自动秒收录导航php源码
  7. 网络专业人士笔记(超级珍藏)
  8. 自动化创建tornado项目
  9. 【java笔记】of方法 JDK9对集合添加方法的优化
  10. ScreenToClient和ClientToScreen
  11. CodeBlocks注释和替换快捷键
  12. CSPs-2020 游记
  13. 【附源码】计算机毕业设计java原创网络文学管理系统设计与实现
  14. java 热力图,热力图
  15. 【Gradle】Gradle运行main方法报错:Unnecessarily replacing a task that does not exist is not supported.
  16. Linux服务器docker中装oracle 11g
  17. 队列BlockingQueue
  18. Laravel 5.5 Artisan 命令
  19. 病毒、蠕虫和木马的区别
  20. java创建user类在哪里_java中创建对象有哪几种方式

热门文章

  1. 面试:a==1 a==2 a==3 是 true 还是 false?
  2. 初五迎财神!即使没有年终奖,也要来一发红包!
  3. 别再叫我 Sql boy!
  4. 万字超强图文讲解 AQS 以及 ReentrantLock 应用
  5. 2020 最新 JVM 生态报告
  6. android popupwindow 自定义背景,Android PopupWindow背景半透明兼容方案
  7. java 字符串编程题,JAVA 基础编程练习题7 【程序 7 处理字符串】
  8. Opencv C++ 归一化
  9. PyTorch基于Apex的混合精度加速
  10. 人脸关键点 HRNet-Facial-Landmark-Detection