Я создаю метку времени в CF8, используя пользовательскую функцию. Затем он передается через строку запроса в PHP и снова сравнивается с текущей меткой времени (используя time ()). Поскольку в CF8 нет встроенной опции миллисекунды для DateDiff (), я добавил 3 ноля в конец возвращаемого значения (в секундах).
Но, когда я сравниваю его с отметкой времени PHP, разница должна быть в секундах, но я получаю многочасовую разницу.
<cfscript>
function GetEpochTime() {
datetime = Now();
return DateDiff("s", "January 1 1970 00:00", datetime) & "000"; //zeroes padded for milliseconds
}
</cfscript>
<cfset foo = getepochtime() /> //Returns time stamp
В качестве аргумента метка времени CF имеет вид 1323344375000. При сравнении со штампом PHP со значением 1323362710000 разница составляет 18 555 000 миллисекунд (более 300 минут). Реальное время, которое прошло, может быть 2 секунды.
$php_ts = time() * 1000; //PHP timestamp is in seconds, too
$cf_ts = $_GET['coldfusion_timestamp'];
echo $ts_difference = ($php_ts - $cf_ts) / (1000 * 60); //Difference in minutes
Где моя конверсия не удалась?