如何使用javascript将OLE自动化日期转换为可读格式?

sem*_*d3r 4 javascript ole date

您必须知道.NET方法"DateTime.FromOADate(double d)".我需要在javascript中实现相同的功能.即给出像"40967.6424503935"这样的双倍值,它必须转换为"2/28/2012 3:25:07 PM"有人可以帮帮我吗?

提前致谢!

Cod*_*odo 12

自动化日期是自1900年1月1日以来的天数(1900年奇怪地被视为闰年).所以转换是:

var oaDate = 40967.6424503935;
var date = new Date();
date.setTime((oaDate - 25569) * 24 * 3600 * 1000);
alert(date);
Run Code Online (Sandbox Code Playgroud)

此解决方案创建UTC日期.当您显示它时,它将显示在您当地的时区.根据您的日期是本地日期还是UTC日期,这是正确的,或者需要一些额外的时区摆弄.

  • 这样做了:utc = date.getTime()+(date.getTimezoneOffset()*60000); nd = new Date(utc); 警报(nd.toLocaleString()); (2认同)