Home  >  Article  >  Backend Development  >  How to get the current timestamp in php accurate to milliseconds

How to get the current timestamp in php accurate to milliseconds

小云云
小云云Original
2018-03-14 15:30:4913546browse

PHP does not have its own function to obtain millisecond timestamps, but it provides a microtime() function. If called without optional parameters, this function returns a string in the format of "msec sec". where sec is the number of seconds since the Unix epoch (0:00:00 January 1, 1970 GMT) and msec is the microsecond portion. Both parts of the string are returned in seconds.

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

Note that the result is divided into two parts, that is, the first half is milliseconds (but the unit is seconds), and the second half is seconds.
Now, we make modifications based on this, as follows:

<?php
list($msec, $sec) = explode(&#39; &#39;, microtime());
$msectime =  (float)sprintf(&#39;%.0f&#39;, (floatval($msec) + floatval($sec)) * 1000);
这样就可以了,$msectime就是当前的毫秒数!可以将这两行封装成一个函数方便使用。
<?php
//返回当前的毫秒时间戳
function msectime() {
  list($msec, $sec) = explode(&#39; &#39;, microtime());
  $msectime =  (float)sprintf(&#39;%.0f&#39;, (floatval($msec) + floatval($sec)) * 1000);
}

Note: sprintf('%.0f', $num) outputs a floating point number without a decimal part

Things are not over yet. After I changed the timestamp to millisecond level, when I updated the database data again, it was prompted that it was out of range. It turned out that I used int type in the database to store the second level time obtained by the time() function. Poke, the storage range is enough. If you change it to the millisecond level, you have to change it to the BIGINT type.

Integer type Bytes Range (signed) Range (unsigned) Usage

TINYINT 1 byte (-128,127) (0,255) Small integer value

SMALLINT 2 bytes (-32 768, 32 767) (0, 65 535) Large integer value

MEDIUMINT 3 bytes (-8 388 608, 8 388 607)               (0, 16 777 215)                                                            Integer value

INT or INTEGER 4 bytes (-2 147 483 648, 2 147 483 647) (0, 4 294 967 295) Large integer value

BIGINT 8 bytes (-9 233 372 036 854 775 808, 9 223 372 036 854 775 807) (0, 18 446 744 073 709 551 615) Maximum integer value

Related recommendations:

php implementation How to get the current millisecond timestamp

PHP Get the current timestamp function in detail

php calculates the time difference between two timestamps Two methods

The above is the detailed content of How to get the current timestamp in php accurate to milliseconds. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn