我正在尝试将数字(以ms为单位的日期)传递给库模块中的函数。数字搞砸了!
这是一个简单的外观(函数MailUtils.showNum只有一行,相同的日志调用如下所示):
n = Number(todayMs - mbRetMs);
Logger.logDebug("Num = " + n + "; as Date = " + new Date(n));
MailUtils.showNum(n);
Log:
/* Num = 1500396760628; as Date = Tue Jul 18 2017 12:52:40 GMT-0400 (EDT) */
/* Num = 1453174324; as Date = Sat Jan 17 1970 14:39:34 GMT-0500 (EST) */
严重???
*正在发生什么?看起来它以某种方式计算出它是一个日期并传递了原始日期(从ms开始计算的日期)?
答案 0 :(得分:0)
LOL,Int32溢出#Fail。你所看到的是你原来的[64位]整数的32个最低有效位;高位都被剥离了。
奇怪的是,因为JS在内部使用Double
;可能是JXA中的一个错误。 (它有很多。)
如果您喜欢JavaScript,我强烈建议使用Node.js。相比之下,JXA是垃圾,而OSA技术现在处于维护模式,我认为它不会被修复。