<?php
$filenameNew = 'PX20170713_103320_2651093_00001';
$filenameOld = '5956e5781e4f1-20170630_233347_5712837_00001.xml';
//$timeslug = implode(array_slice(explode('_', rtrim(basename($fileToProcess), ".xml" )), 0, 2));
//$datetime = date('c', strtotime($timeslug));
/**
* Get a date time object from an AX filename.
*
* Example filename: PX20170713_103320_2651093_00001.xml
*
* If this fails it will throw an appropriate exception to
* be handled gracefully.
*/
function getDateFromFilename(string $filename)
{
$dateRegexp = '/([0-9]{4})([0-9]{2})([0-9]{2})/';
$timeRegexp = '/([0-9]{2})([0-9]{2})([0-9]{2})/';
list($date, $time) = explode('_', $filename);
preg_match($dateRegexp, $date, $dateParts);
unset($dateParts[0]);
preg_match($timeRegexp, $time, $timeParts);
unset($timeParts[0]);
$dateTime = new \DateTime();
$dateTime->setDate($dateParts[1], $dateParts[2], $dateParts[3]);
$dateTime->setTime($timeParts[1], $timeParts[2], $timeParts[3]);
return $dateTime;
}
var_dump(getDateFromFilename($filenameNew));
- Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.31, 7.4.0 - 7.4.33, 8.0.0 - 8.0.12, 8.0.14 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
- object(DateTime)#1 (3) {
["date"]=>
string(26) "2017-07-13 10:33:20.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(16) "Europe/Amsterdam"
}
- Output for 7.3.32 - 7.3.33, 8.0.13
- object(DateTime)#1 (3) {
["date"]=>
string(26) "2017-07-13 10:33:20.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}
preferences:
180.49 ms | 401 KiB | 199 Q