Fel*_*sty 3 javascript datetime
我对javascriptDate()函数的奇怪问题感兴趣,这些是细节
服务器端:Struts(ActionForm、Action 类、jsp)
客户端:jQuery、javascript
现在,我需要页面上的服务器时间并使用 javascript 进行操作。所以,我Calendar.getInstance().getTimeinMillis();在 action 类中做 了,并将它保存为 ActionForm 属性。
现在,在客户端,我从 styleId 中获得了长值 (timeinMillis)。但是,为了操纵,当我做
var curTime = parseInt($("#serverTime").val());
var serverTime = new Date(curTime);
Run Code Online (Sandbox Code Playgroud)
现在,虽然我们提供服务器的 timeinMillis,但 serverTime 提供的是客户端机器日期而不是服务器日期。
奇怪的是,当我从服务器传递日期的字符串值而不是 long timeinMillis 并将其作为参数传递时,它运行良好。
任何的想法?
这是因为您的 javascript 在客户端机器上运行,所以当您在 javascript 中创建 new Date() 时,它会获取客户端机器时间。
如果您将服务器日期作为字符串传递,则回答第二个查询,它将创建该日期的日期对象。
使用以下功能
function calcTime(offset) {
// create Date object for current location
d = new Date();
// convert to msec, add local time zone offsetand get UTC time in msec
utc = d.getTime() + (d.getTimezoneOffset() * 60000);
// create new Date object with supplied offset
nd = new Date(utc + (3600000*offset));
// return time as a string
return "The Server time is " + nd.toLocaleString();
}
Run Code Online (Sandbox Code Playgroud)
在这里,您需要使用 UTC 传递服务器时间的偏移量