来自输出计划程序的奇怪日期格式
问题描述:
在我的数据库中有一个名为begindate的列,它是来自不同程序的输出。我需要将其转换,以便我可以在我的网站上打印它,但我不知道它是什么类型的日期格式,以及如何转换它。来自输出计划程序的奇怪日期格式
这里是一个例子:'736874'
和'736872'
这不是时代,因为当我转换它,它说这是Friday, January 9, 1970
但应该至少是“2017年”
所以我有两个假设。
这是我不知道的
这个数据格式是由其他程序生成的字符串
(我不知道名字另一个程序,但它用于计划)。
答
此日期格式称为序列日期。它主要用于Excel。
它是如何工作的,从1900年1月0日开始。序列日期表示从那一刻起的天数。因此,1月19日的序列日期为36544.
下面是完整的解释链接http://www.cpearson.com/excel/datetime.htm
将它更改为DD/MM/YYYY用PHP,你可以使用下面的代码: (https://forums.phpfreaks.com/topic/157341-convert-serial-date-into-ddmmyyyy/)
<?
function convertSerialDate($date) {
$timestamp = ($date - 25569) * 86400;
return date("d/m/Y",$timestamp);
}
print convertSerialDate(733535);
?>
因为这个日期是6个数字,它有点不同。日期代表从january 1th 0001
开始的日期。 所以你需要使用这个编号719543
$timestamp = ($date - 719543) * 86400;
如果没有办法联系谁想出这个奇怪的日期系统,那么你需要希望有此人谁是遇到过这样的人。发生这种情况的几率接近0,因为我们已经使用了许多年的标准日期符号,而这不是其中之一。 – apokryfos
@apokryfos我刚刚联系过使用它的人。他们说这是从特定日期开始的几秒钟或几分钟,可能是1900年1月1日。现在我必须计算它te的日期和一些系统在我的网站上打印它 –
哇,他们实际上使它不太清楚它是什么 – apokryfos