【发布时间】:2014-04-18 15:03:51
【问题描述】:
我从具有 UTC 格式时间的数据库中收到日期。 日期对我来说无关紧要,我只需要小时和分钟。
问题
当我将日期发送到数据库时,我使用此函数将其从本地时间转换为 UTC:
self.toUTC = function (date) {
var now = new Date(date);
var utc = new Date(now.getTime() + now.getTimezoneOffset() * 60000);
return utc;
};
当我在 Chrome 中查看开发者工具时,我看到:
奇怪的是,当我从数据库收到日期并将其转换回本地时间时,由于夏令时,它获取了丹佛的正确 GMT,即 GMT -0600。我为此使用此功能:
//converts date to just time in utc format to include in menu
self.setTimeForMenu = function (dateUTC) {
var date = new Date(dateUTC + ' UTC');
var hours = (date.getHours()<10?'0':'') + date.getHours();
var minutes = (date.getMinutes()<10?'0':'') + date.getMinutes();
return hours + ':' + minutes;
};
当我在 Chrome 开发者工具上看到日期时,我看到:
我的尝试
- 上述 JavaScript 函数的组合
- moment.js 但我得到了相同的结果
你们对我接下来应该做什么有什么建议吗?
编辑 1
如果我使用 now.toUTCString() 或 now.toISOString() 它不会改变任何东西,因为当我抓取日期并将其设置在新的 Date JavaScript 对象中时,它已经将其设置为 GMT -0700:
【问题讨论】:
-
now.getTimezoneOffset()返回什么?所有浏览器都一样吗? -
是的 420 适用于所有浏览器,这意味着 GMT -0700
-
您能否举例说明您希望如何使用
toUTC()函数?我不认为这样的功能是必要的。您可以使用 getUTCHours() 和 getUTCMinutes() 来获取 UTC 时间.. -
关于照片和你尝试了什么的好问题。我喜欢。
-
@euther 您没有显示想要使用
toUTC()函数的代码。请使用 toUTC 显示行为不正确的代码。
标签: javascript date time momentjs