You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中获取当前日期时间的decimal(16,4)等效值?

PHP获取对应decimal(16,4)格式的日期时间值

你之前用format('U')只能拿到整数Unix时间戳,但数据库里存储的是带四位小数的时间戳(比如1389639800.8659),需要获取包含微秒的时间值再处理。

解决方案代码

// 设置目标时区
$timezone = new DateTimeZone('Europe/Warsaw');
// 获取当前时区的DateTime实例
$datetime = new DateTime('now', $timezone);

// 获取带六位微秒的时间戳字符串,格式:{整数时间戳}.{六位微秒}
$timestampWithMicro = $datetime->format('U.u');

// 转换为float并保留四位小数,生成符合decimal(16,4)的格式
$decimalTime = number_format((float)$timestampWithMicro, 4, '.', '');
// 或者用round直接取四位小数,结果等价
// $decimalTime = round((float)$timestampWithMicro, 4);

// 此时$decimalTime即可直接与数据库的decimal(16,4)值比较
echo $decimalTime;

关键说明

  • format('U.u')是核心:U输出整数Unix时间戳,u输出六位微秒,组合后得到带小数的完整时间戳字符串(例如1660138200.123456)。
  • 用number_format或round保留四位小数后,结果完全匹配decimal(16,4)的存储格式,不管是字符串还是数值类型,都能直接和数据库的字段做比较。
  • 针对你举例的2022-08-10 12:50:00(欧洲华沙时区),对应的decimal(16,4)值为1660138200.0000(假设该时间点无毫秒偏移)。

内容的提问来源于stack exchange,提问作者ILG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:48:51