首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用php创建3位毫秒

用php创建3位毫秒
EN

Stack Overflow用户
提问于 2012-02-12 02:28:55
回答 5查看 14.5K关注 0票数 8

我有13位数字,想要创建日期和时间与包括毫秒

示例代码如下:这是我的php脚本

代码语言:javascript
复制
$mil = 1328910295939;
$seconds = $mil / 1000;
$showdate = date('Y:m:d H:i:s', $seconds) ;

echo "$showdate";

结果是2012:02:10 15:44:55.xxx ===> xxx是我想要显示的3位毫秒数。

以及如何包含H:i:s后的3位毫秒

请帮帮我……

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-12 04:39:49

像这样怎么样?

代码语言:javascript
复制
$mil = 1328910295939;

function toTimestamp($milliseconds)
{
    $seconds = $milliseconds / 1000;
    $remainder = round($seconds - ($seconds >> 0), 3) * 1000;

    return date('Y:m:d H:i:s.', $seconds).$remainder;
}

echo toTimestamp($mil);

泰达!

它也应该相当快。

此外,这是输出:2012:02:10 15:44:55.939 -为什么您不使用-用于分隔日期部分。

票数 10
EN

Stack Overflow用户

发布于 2012-02-12 02:31:26

只需去掉最后两个字符:

代码语言:javascript
复制
substr(date('Y-m-d H:i:s.u',1328910295939), 0, -2)
票数 5
EN

Stack Overflow用户

发布于 2012-02-12 02:50:51

以下是一个函数,它将为您准确地完成此操作(通过四舍五入,而不是截断):

代码语言:javascript
复制
function getTimestamp()
{
        $microtime = floatval(substr((string)microtime(), 1, 8));
        $rounded = round($microtime, 3);
        return date("Y-m-d H:i:s") . substr((string)$rounded, 1, strlen($rounded));
}

解释:

microtime()以1个字符串的形式返回2个数字,以空格分隔。第二个数字是自unix时代以来的秒数,第一个数字是自第二个数字以来的微秒数。基本上,第一个数字是以8精度格式(0.00000000)表示的微秒数,尾随的0永远不会被截断。

我们将其舍入为精度3 (0.00),并截断前导0,并将其附加到实际的时间戳中。

由于某些原因,u的php文档,微秒,似乎实际上并不支持。每次使用这种方法时,我都会得到0.000。所以我求助于microtime()作为备份解决方案。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9242840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档