timestamp — PHP: Как преобразовать 18-значное время из оконного сервера в местное время

Я запросил API, и я получил этот ответ

$response = [635355360000000000.0, 6.400000, 6.510000, 6.400000, 6.470000, 1586684.00];

Предполагается, что первый элемент массива будет date, и когда я посмотрел вокруг, как преобразовать его, ближайший код, который дал мне ответ, это:

$dateLargeInt= $response[0];
$secsAfterADEpoch = $dateLargeInt / (10000000);

$ADToUnixConvertor=((1970-1601) * 365.242190) * 86400;
// unix epoch - AD epoch * number of tropical days * seconds in a day
$unixTsLastLogon=intval($secsAfterADEpoch-$ADToUnixConvertor);

// unix Timestamp version of AD timestamp
$lastlogon=date("d-m-Y", $unixTsLastLogon); // formatted date

echo $lastlogon;

Это был результат, который я получил 12-05-3614

Я также попробовал это:

$dateLargeInt= $response[0];
echo date('Y-d-m',$response[0]);

Это был результат 20133611831-11-12

2

Решение

Поскольку в документации указано, что дата указана в галочках, вы можете прочитать Определение.

Эта статья может также помочь вам понять.

Тогда попробуйте это:

$seconds = ($response[0] - 621355968000000000) / 10000000;
echo date("Y-m-d H:i:s", $seconds);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]