PHP:如何将18位数的时间从窗口服务器转换为本地时间
我查询了一个API,得到了这个响应PHP:如何将18位数的时间从窗口服务器转换为本地时间,php,timestamp,timestamp-with-timezone,Php,Timestamp,Timestamp With Timezone,我查询了一个API,得到了这个响应 $response=[635355360000000000.0,6.400000,6.510000,6.400000,6.470000,1586684.00] 数组的第一个元素应该是date,当我四处查看如何转换它时,得到答案的最接近的代码是: $dateLargeInt= $response[0]; $secsAfterADEpoch = $dateLargeInt / (10000000); $ADToUnixConvertor=((1970-1601)
$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,因为文档指定日期以您可以读取的刻度为单位
也可以帮助你理解
然后试试这个:
$seconds = ($response[0] - 621355968000000000) / 10000000;
echo date("Y-m-d H:i:s", $seconds);
您查看了API文档了吗?@Opsse我查看了API,它清楚地表明数组中的值是时间,这是一个证券交易所API,这是一个公司当天的交易报告。@Opsse非常感谢,我刚刚阅读了文档。上面说日期是以记号表示的这意味着什么这有帮助吗?我得到了这个1990-02-18 15:36:00
,这与我在[]2014-05-13上得到的相反T00:00:00.000ZMy糟糕,我忘了用10000000
替换100000000
。现在:(635355360000000000−62135596800000000)÷10000000=1399939200
这是2014-05-13的时间戳,我不知道我应该点击检查按钮。谢谢,不过我现在已经做了。