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

以毫秒为单位比较Coldfusion和PHP时间戳,php,coldfusion,coldfusion-8,Php,Coldfusion,Coldfusion 8,我正在使用自定义函数在CF8中创建时间戳。然后通过查询字符串将其传递给PHP,并再次与当前时间戳进行比较(使用time()。由于CF8没有DateDiff()的内置毫秒选项,我在返回值的末尾加了3个零(以秒为单位) 但是,当我将其与PHP时间戳进行比较时,差异应该以秒为单位,但我得出了一个多小时的差异 <cfscript> function GetEpochTime() { datetime = Now(); return DateDiff("s", "January

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

我的转换失败在哪里?

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

将getEpochTime()修改为:


来源:(Rob Brooks Bilson)

CF和PHP是在同一台服务器上运行,还是在不同的服务器上运行?18555秒约为5.15小时,因此有一个5小时的时区,两个系统之间有9分钟的时钟偏差。事实并非如此,但两台服务器都是内部服务器,因此它们的时间戳应该不会相距这么远。就是这样。谢谢你的眼睛!
$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
 return DateDiff("s", DateConvert("utc2Local", "January 1 1970 00:00"), datetime) & "000";