Я видел несколько вопросов и ответов по StackOverflow, охватывающих сценарий, в котором временные метки были основаны на эпохе Unix, но изо всех сил пытались объединить решения и превратить их в рабочее решение для данных и настраиваемого базового года, в котором я был в комплект поставки.
<?php
date_default_timezone_set( 'Europe/London' );
function TransformDate( $iTimeStamp ) {
/* Insert transform code here */
$dt = new DateTime( '@' . $iTimeStamp );
return $dt->format( 'Y-m-d H:i:s' );
}
/* These timestamps should be between Sep-2014 and Jan-2015 */
$aTest = array( '-1554460973', '-1554427073', '-1554142396', '-1554139421' );
foreach( $aTest as $i ) echo( $i . ' - ' . TransformDate( $i ) . "\r\n" );
Единственная информация, которую я должен помочь обработать эти отметки времени, — то, что они основаны на году 2013
, с 10
тиков в секунду, и данные изначально были из базы данных Microsoft Jet (поэтому я представляю себе типы хранения данных, аналогичные Microsoft Access и т. д.).
Я пробовал так много комбинаций добавления или вычитания StrToTime значение результата 2013-01-01
а также 1899-12-30
и умножение и деление на 10
что я просто потерял трек сейчас. Например:
$iTimeStamp -= strtotime( '2013-01-01' );
$iTimeStamp += strtotime( '1899-12-30' );
$iTimeStamp = round( $iTimeStamp / 10 );
Пока что, хотя самое близкое, что у меня есть, это даты 2012 года, хотя часть даты 31 декабря 14:38 может быть правильной:
$iTimeSinceBase = ( $iTimeStamp - strtotime( '2013-01-01' )) / 86400;
$iTimeStamp = strtotime( '2013-01-01' ) + $iTimeSinceBase;
Выход для которого:
-1554460973 = 2012-12-31 14:38:22
-1554427073 = 2012-12-31 14:38:22
-1554142396 = 2012-12-31 14:38:26
-1554139421 = 2012-12-31 14:38:26
На данный момент любая помощь приветствуется! Спасибо.
Задача ещё не решена.
Других решений пока нет …