如何在PHP中生成等效于yyyyMMddHHmmssffff格式的字符串
解决方案:PHP生成对应VB
yyyyMMddHHmmssffff格式的时间字符串 你遇到的长度问题,是因为microtime(true)返回的浮点数转字符串时,会省略末尾的零(比如微秒部分只有两位时,就不会补零到六位),导致截取后长度不足。下面提供两种可靠的实现方式:
方法一:基于microtime()拆分处理
// 拆分微秒和时间戳(microtime()返回"0.xxxxxx 1234567890"格式的字符串) list($microSecStr, $timestamp) = explode(' ', microtime()); // 生成日期时间部分(YYYYMMDDHHmmss) $datePart = date('YmdHis', $timestamp); // 提取微秒的前四位,不足四位自动补零 $microPart = str_pad(substr($microSecStr, 2, 4), 4, '0'); // 拼接最终结果 $result = $datePart . $microPart;
方法二:基于DateTime类处理
PHP的DateTime类支持直接获取微秒(格式符u对应六位微秒),取前四位即可匹配VB的ffff精度:
$dt = new DateTime(); // 拼接日期时间部分和前四位微秒 $result = $dt->format('YmdHis') . substr($dt->format('u'), 0, 4);
说明
VB的ffff对应0.1毫秒精度(四位数字,范围0000-9999),上述两种方法都能保证末尾四位的长度稳定,不会出现截断或长度不足的问题。
内容的提问来源于stack exchange,提问作者user1765369
相关产品推荐
相关产品推荐

