PHP的毫秒时间戳中的毫秒部分是几位?

发布于 2022-09-12 13:21:18 字数 355 浏览 22 评论 0

基本环境
php ^7.3
mysql ^8.0

环境的意思是按较新的版本来说,不考虑旧版因素。
因为MySQL中时间戳的格式是如下,所以在一般都是以如下格式进行存储。

$date = new DateTime($value);
$date = $date->format('Y-m-d H:i:s.u');

请教时间戳里的毫秒部分应该是几位?

为什么好多在线转换工具只提供3位的毫秒时间戳?是因为不需要在意更长的位数了吗?

MySQL中最多提供6位的毫秒时间戳,相信已经足够了。

如果考虑不同语言间的数据交换的时候,应该用几位的毫秒时间戳?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我乃一代侩神 2022-09-19 13:21:18

一般都不需要毫秒,如果需要,保留三位也就够了,如果你需要很高经度的毫秒或微秒,往数据库里存 float 也可以的.

那些过往 2022-09-19 13:21:18

毫秒本来就是1/1000秒。3位够了啊。

橘和柠 2022-09-19 13:21:18
  1. microtime(true) 返回的精度是?

    PHP 源代码:

    if (get_as_float) {
        RETURN_DOUBLE((double)(tp.tv_sec + tp.tv_usec / MICRO_IN_SEC));
    }

    所以小数点部分是 tp.tv_usec / MICRO_IN_SEC,最多就 6 位。

  2. date('u') 精度是?

    PHP 源代码:

    case 'u': length = slprintf(buffer, 32, "%06d", (int) floor(t->f * 1000000 + 0.5)); break;

    %06d 也是6位。

至于实际要存多少,看业务需求了(实际上我还没遇到过需要毫秒的业务,无奈摊手)。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文