什么PHP函数来解析这个时间戳42866.32972 [重复]

Posted

技术标签:

【中文标题】什么PHP函数来解析这个时间戳42866.32972 [重复]【英文标题】:What PHP function to parse this timestamp 42866.32972 [duplicate] 【发布时间】:2018-08-15 01:10:06 【问题描述】:

我正在寻找正确的 php 函数来解析这个时间戳

我有一系列需要在 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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

php怎么把中文日期转换成时间戳

php中timestamp 的意思

php怎么将指定日期转换为时间戳?

如何利用PHP时间戳获取当前时间

如何通过PHP函数来获取今日日期的时间戳?

php 时间戳,能够取得具体时间量的时间错值吗?例如10分钟的时间戳是多少?刚接触php,谢谢了。