什么PHP函数来解析这个时间戳42866.32972 [重复]
Posted
技术标签:
【中文标题】什么PHP函数来解析这个时间戳42866.32972 [重复]【英文标题】:What PHP function to parse this timestamp 42866.32972 [duplicate] 【发布时间】:2018-08-15 01:10:06 【问题描述】:我有一系列需要在 PHP 中解析的时间戳,但是我找不到要使用的正确函数。时间戳的格式为“42866.32972”。
Excel 使用“YYYY-MM-DD hh:mm:ss”格式将“42866.32972”转换为“2017-05-11 07:54:48”但是我找不到解析此时间戳格式的函数PHP。
我试图用 DateTime 和 Date 来解析这个没有用。
什么是时间戳格式,我该如何解析?
【问题讨论】:
Convert the FULL Excel date serial format to Unix timestamp的可能重复 【参考方案1】:Excel 日期与 Unix 纪元类似,但与 (1970/01/01) 相比,它们从不同的日期 (1900/01/01) 开始。
<?php
function parse_excel_date($value)
return date('Y-m-d H:i:s', ceil($value * 86400 - 2209161600));
echo parse_excel_date(42866.32972);
Output:
2017-05-11 07:54:48
【讨论】:
【参考方案2】:您可以使用这个公式将 Excel 日期更改为 Unix 日期,然后您可以使用 "gmdate" 在 PHP 中获取真实日期:
$unix_date = ($excel_date- 25569) * 86400
要将 Unix 日期转换为 Excel 日期,请使用以下公式:
$excel_date= 25569 + ($unix_date / 86400)
将此公式放入变量后,您可以使用以下示例在PHP中获取真实日期:
$unix_date = ($excel_date- 25569) * 86400;
echo gmdate("d-m-Y H:i:s", $unix_date );
86400 是一天中的秒数 = 24 * 60 * 60。
25569 是从 1900 年 1 月 1 日到 1970 年 1 月 1 日的天数。
Excel 基准日期是 1900 年 1 月 1 日,Unix 是 1970 年 1 月 1 日。
UNIX 日期值从 1970 年 1 月 1 日(1969 年 12 月 31 日午夜)开始以秒为单位。
所以要从excel转换,你必须减去天数,然后转换为秒。
【讨论】:
以上是关于什么PHP函数来解析这个时间戳42866.32972 [重复]的主要内容,如果未能解决你的问题,请参考以下文章