【问题标题】:How can i change j/M/y date format to timestamp?如何将 j/M/y 日期格式更改为时间戳?
【发布时间】:2016-07-11 18:17:55
【问题描述】:
我尝试转换为时间戳但不起作用,我的代码在下面
$date = $objPHPExcel->getActiveSheet()->getCell('A' . $x)->getFormattedValue();//output value is 9/Feb/16
echo strtotime($date);//return value is empty
返回空值。我想比较 Excel 工作表日期和 PHP 返回日期。
Excel 表返回日期是这样的 -> 9/Feb/16
【问题讨论】:
标签:
php
excel
date
phpexcel
date-format
【解决方案1】:
您只需将斜杠更改为减号,strtotime 就会将您识别为 $date 为日期
$date = str_replace('/','-',$date);
echo strtotime($date); //output 1454976000
live sample
【解决方案2】:
$d = DateTime::createFromFormat('j/M/y', '9/Feb/16');
echo $d->getTimestamp();
【解决方案3】:
如果单元格中的值是 MS Excel 序列化时间戳,那么您可以从单元格中获取“原始”值
$date = $objPHPExcel->getActiveSheet()
->getCell('A' . $x)->getValue();
它应该返回一个像 2016 年 2 月 2 日的 42409 这样的数字
然后使用内置的日期/时间转换函数将其转换为 unix 时间戳或 PHP DateTime 对象
$date = PHPExcel_Shared_Date::ExcelToPHP($date); // returns a unix timestamp
echo date('Y-m-d H:i:s', $date);
或
$date = PHPExcel_Shared_Date::ExcelToPHPObject($date); // returns a DateTime object
echo $date->format('Y-m-d H:i:s');