2012-02-09 144 views
0

我以毫秒为单位从xml文档中提取unix时间,但无法在php 5.2.17中将其转换为可读的日期(d-m-Y)。Unix时间以毫秒为单位d-m -Y

我用http://www.epochconverter.com/从正确 其转换为2012年2月9日13时37分49秒

我已经试过如下:

$timestamp = $xml['LastBackupDate']; 
echo '<br />Method 1: '.date("d-m-Y", $timestamp); 
echo '<br />Method 2: '.date("d-m-Y", strtotime($timestamp)); 
echo '<br />Method 3: '.date("d-m-Y", strtotime($timestamp*1000)); 
echo '<br />Method 4: '.date("d-m-Y", strtotime($timestamp/1000)); 
echo '<br />Method 5: '.date("d-m-Y", $timestamp/1000); 
echo '<br />Method 6: '.date("d-m-Y", (int)$timestamp); 
echo '<br />Method 7: '.date("d-m-Y", intval($timestamp)); 
echo '<br />Method 8: '.date("d-m-Y", intval($timestamp)/1000); 
echo '<br />Method 9: '.date("d-m-Y", intval($timestamp/1000)); 

这带回:

Method 1: 
Method 2: 01-01-1970 
Method 3: 01-01-1970 
Method 4: 01-01-1970 
Method 5: 25-01-1970 
Method 6: 19-01-2038 
Method 7: 19-01-2038 
Method 8: 25-01-1970 
Method 9: 25-01-1970 

任何想法如何将th是什么? 谢谢!


编辑,最好成绩使用:

echo date("d-m-Y", substr($xml['LastBackupDate'],0,-3)); 

回答

0

你试过通过1000,而不是乘?大纪元时间通常在数秒内


好了,现在我确实需要学习PHP ...

date需要的格式和时间。 strtotime需要一个人类可读的日期/时间字符串并返回一个时间。您的值是以毫秒为单位的纪元时间,而不是人类可读的字符串,因此不是strtotime的有效参数。

尝试方法4没有strtotime,它不应该需要。


权,没有工作,因为$timestamp是一个字符串(我认为这已经是一个整数)。

你说丢掉字符串的最后3个字符会让你获得最大的方式,就像转换为整数然后除以1,000。你的方法转换为int但不分割 - 你需要两个!

根据thisdate需要整数时间戳以秒为。你的值是一个字符串,所以你应该把它转换成一个整数。也是以毫秒为单位,所以你必须除以1,000来获得正确的单位。

请注意,纪元时间自1970年1月1日起计算为秒数。因此,无论何时您看到01-01-1970,第二个参数评估为零。

date("d-m-Y", $timestamp);     <-- string, not int: treated as zero 
date("d-m-Y", strtotime($timestamp));  <-- not a formatted time, gives zero 
date("d-m-Y", strtotime($timestamp*1000)); <-- ditto 
date("d-m-Y", strtotime($timestamp/1000)); <-- ditto 
date("d-m-Y", $timestamp/1000);   <-- clearly nonzero, but no idea what! 
date("d-m-Y", (int)$timestamp);   <-- correct type but in milliseconds 
date("d-m-Y", intval($timestamp));   <-- correct type but in milliseconds 

如果您传递一个包含秒数而不是毫秒的整数,它应该是正确的。

像这样:

date("d-m-Y", intval($timestamp)/1000); 
+0

只是做到这一点,并更新了最初的问题...但它并没有帮助。 – Michael 2012-02-09 14:12:15

+0

已编辑。你的_Method 1_没有叫'strtotime',我认为这是正确的(只有单位关闭)。 – Useless 2012-02-09 14:19:26

+0

我已经做了改变,并添加了方法5 - 似乎没有工作,但输出是不同的...任何其他想法? – Michael 2012-02-09 14:24:20

相关问题