• php获取当前毫秒时间戳


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

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

    1. <?php
    2. echo microtime();
    3. //输出结果是
    4. //0.25139300 1138197510

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

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

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

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

    注意: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) 极大整数值 



     





  • 相关阅读:
    Kubernetes CNI 发展趋势- iptables_ipvs_bpf_ovs
    《设计模式:可复用面向对象软件的基础》之单例模式
    《设计模式:可复用面向对象软件的基础》之策略模式
    Rancher On K3s 高可用架构部署
    学习计算机的体会与认识
    结对编程1-模块化
    个人作业——APP案例分析
    四则运算——二叉树
    IDEA使用Visual Studio的快捷键配置
    【Java学习笔记】写第一个HelloWorld程序,命令行程序
  • 原文地址:https://www.cnblogs.com/star91/p/4998855.html
Copyright © 2020-2023  润新知