Как я могу изменить формат даты j/M/y на отметку времени?


Я попытался преобразовать в метку времени, но не получилось, мой код ниже

$date = $objPHPExcel->getActiveSheet()->getCell('A' . $x)->getFormattedValue();//output value is 9/Feb/16

echo strtotime($date);//return value is empty

Это возвращает пустое значение. Я хочу сравнить дату листа Excel и дату возврата PHP. Дата возврата листа Excel выглядит следующим образом -> 9/ Февраль/16

Author: ÄR Âmmãř Żąîñh, 2016-03-24

3 answers

Если значение в ячейке является сериализованной меткой времени MS Excel, то вы можете получить "сырое" значение из ячейки

$date = $objPHPExcel->getActiveSheet()
    ->getCell('A' . $x)->getValue();

Который должен возвращать число, подобное 42409, для 2 февраля 2016 года

Затем используйте встроенные функции преобразования даты/времени, чтобы преобразовать их либо в метку времени 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');
 2
Author: Mark Baker, 2016-03-24 08:05:27

Вам просто нужно изменить косую черту на символ минус, чтобы strtotime распознал вас $date как дату

$date = str_replace('/','-',$date);
echo strtotime($date); //output 1454976000

live sample

 2
Author: Fabio, 2016-03-24 07:55:41
$d = DateTime::createFromFormat('j/M/y', '9/Feb/16');
echo $d->getTimestamp();
 1
Author: budwiser, 2016-03-24 08:04:16