比较Coldfusion和PHP时间戳(以毫秒为单位)

时间:2011-12-08 17:11:05

标签: php coldfusion coldfusion-8

我正在使用自定义函数在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

我的转化失败在哪里?

1 个答案:

答案 0 :(得分:2)

在GMT偏移的上下文中,您没有考虑服务器的本地时间。

将你的getEpochTime()修改为:

 return DateDiff("s", DateConvert("utc2Local", "January 1 1970 00:00"), datetime) & "000";

资料来源:GetEpochTimeFromLocal()(Rob-Brooks Bilson)