使用 PHP Excel 转换 Excel 日期

新手上路,请多包涵

我正在从 excel 中读取日期,格式为 2012 年 12 月 5 日/月/年,使用此代码读取。使用 PHP EXCEL

    PHPExcel_Style_NumberFormat::toFormattedString($value['A'],'YYYY-MM-DD' );

将上述日期 ‘12/5/2012’ 转换为 ‘2012-12-05’

现在的问题是,如果日期是 18/5/2012,或者您可以说如果我设置的日期大于 12,它会在格式化后以这种格式 18/5/2012 给我这个日期 18/5/2012

我也试过这个东西

      $temp  = strtotime(  PHPExcel_Style_NumberFormat::toFormattedString($value['A'],'YYYY-MM-DD' );
      $actualdate = date('Y-m-d',$temp) ;

这也将日期 ‘12/5/2012’ 正确转换,但在这种情况下 18/5/2012 它给出的输出为 1970-01-01

原文由 Abdul basit 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 496
1 个回答

考虑到 1664193600000 = 26.09.2022 12:00:00 从 Excel 到 Unix 的答案是:

 UNIX_DATE = (EXCEL_DATE - 25569) * 86400000

从 UNIX 到 Excel

 EXCEL_DATE = 25569 + (UNIX_DATE / 86400000)

PHP 中的 UNIX_DATE 以毫秒为单位。

86400000ms 对应 24 h/d \* 3600 s/h \* 1000 ms/s

25569 是从 Jan 1, 1900Jan 1, 1970 的天数。

原文由 Netcleft 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏