在php中将纪元时间斜坡转换为格式化的日期字符串[重复]
Posted
技术标签:
【中文标题】在php中将纪元时间斜坡转换为格式化的日期字符串[重复]【英文标题】:Converting an epoch timesramp to a formatted date string in php [duplicate] 【发布时间】:2018-09-09 16:58:25 【问题描述】:我试图在 php 中将一个纪元时间戳值转换为格式化的日期字符串并得到意外结果:
$dateStart = 1104555600000;
$formattedDate = date('Y-m-d', $dateStart);
Expected Result: 2005-01-01
Actual Result: 1993-09-26
1104555600000
等价于2005-01-01
但是,$formattedDate
最终变成了1993-09-26
【问题讨论】:
纪元的来源是什么?1104555600000
看起来零太多了。 echo strtotime( '2005-01-01' );
在我的系统上生成 1104566400
。
您的纪元以毫秒为单位。尝试几秒钟。
@JosephSzymborski 所说的,尝试删除三个尾随数字或将其除以 1,000。
@MonkeyZeus 你的意思是除以 1000
@am05mhz tomaytoe tomahtoe...这不是英语课。
【参考方案1】:
实际上你的纪元时间戳是以毫秒为单位的,将其转换为秒,然后将其转换为日期
<?php
$dateStart = 1104555600000;
echo $formattedDate = date('Y-m-d', $dateStart/1000);
输出:- https://eval.in/981417
【讨论】:
为什么在传递纪元时间戳时除以 1000 不起作用,例如:4307486400000,应该是 2160 年?相反,它正在转换为 1970 年。以上是关于在php中将纪元时间斜坡转换为格式化的日期字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 Oracle SQL 中将纪元时间转换为正常的日期时间格式