草庐IT

javascript - 在不转换为本地时区的情况下在 Javascript 中格式化日期

在SQL数据库中,我有一个来自不同时区的时间列表,但我既没有也不关心相应的时区信息:2012-01-0101:02:032012-07-0104:05:06为了输出,我想使用Javascript对它们进行格式化。我试过:vartext=input.replace('','T');//SQL->ISO8601vard=newDate(Date.parse(text));hours=d.getHours();问题是在Chrome中,日期被解释为UTC并转换为我本地的时区,所以我得到:26而在Firefox中,它被解释为本地时间,我得到了我想要的:14Date对象是否有更好的解决方案,还是我

javascript - 从特定时区获取当前时间戳

有没有一种简单的方法可以从特定时区获取javascript中的unix时间戳?例如,我希望客户端向我发送一个unix时间戳,但我想让它与我的时区相匹配。谢谢! 最佳答案 为什么不简单地以UTC格式发送日期,然后在服务器上转换为您的时区?varutcEpochSeconds=dateObj.getTime()+(dateObj.getTimezoneOffset()*60000); 关于javascript-从特定时区获取当前时间戳,我们在StackOverflow上找到一个类似的问题:

javascript - 夏威夷时区的日期使 JavaScript 日期无效

出于某种原因,当我将带有夏威夷时区的日期传递给JavaScript的Date()时,我得到“无效日期”,但我没有得到任何其他时区。有解决办法吗?varHAST='Wed,31Jul201307:21:16HAST';varhawaiiTime=newDate(HAST);console.log("Hawaiitime:"+hawaiiTime);//Hawaiitime:InvalidDatevarPST='Wed,31Jul201307:21:16PST';varpacificTime=newDate(PST);console.log("Pacifictime:"+pacificTi

javascript - 使用 JavaScripty、Moment.js 等从字符串中去除时区?

假设我有一个类似“01/22/20142:07:00PM-08:00”的字符串。我要a)将其格式化为ISO8601,并使用与UTC的时间偏移http://goo.gl/JTfAZq,所以它变成了"2014-01-22T14:07:00-08:00"b)删除时间偏移部分,使其变为“01/22/20142:07:00PM”[然后将其格式化为ISO8601,使其变为“2014-01-22T14:07:00”]当然我可以使用JavaScript字符串函数(和正则表达式),但使用JavaScriptDate()对象工具或Moment.js似乎是更好的方法。然而,两者都不起作用。两者都会自动将日期

javascript - FireFox 是否支持 Date.prototype.toLocaleString() 中的 IANA 时区?

在执行以下代码时,我在FireFox38.0.1(在撰写本文时全新安装了最新版本)中遇到了一个令人惊讶的异常:vard=newDate()varformattingOptions={timeZone:'America/New_York',month:'2-digit',day:'2-digit',year:'numeric',hour:'numeric',minute:'numeric',second:'numeric'};varformattedDate=d.toLocaleString('en-US',formattingOptions);显然,FireFox不喜欢我对format

javascript date - 保留时区偏移量

我有一个包含时区偏移量的ISO8601日期(见下文)。当我由此创建日期对象时,日期对象被转换为我的时区(当前为格林威治标准时间),时区偏移量变为0。有什么方法可以让Date()构造函数保留时区偏移量?vardate=newDate("2012-01-17T12:55:00.000+01:00");console.log(date.toString());我得到的输出是:"TueJan17201211:55:00GMT+0000(GMT)"我想要的输出是:"TueJan17201212:55:00" 最佳答案 不适用于内置Dateob

javascript - 使用我创建的时区偏移量初始化 Moment

我在javascript中使用时刻和时刻时区,这部分是我见过的最不直观的API之一。我希望:moment("2015-12-14T04:00:00Z").utcOffset()将是一个纯函数并返回参数中包含的偏移量,即0。但它会隐式地将其转换为我的本地时区偏移量(PST),所以这会返回-480为什么?我问的是我刚刚创建的对象有什么偏移量,而不是我目前所在的偏移量。这就像我写了一个api,调用User.find(123).name()返回你的名字而不是用户的名字123.无论如何,我可以做到moment("2015-12-14T04:00:00Z").tz("utc").utcOffset

javascript - 如何计算 JavaScript 中两个时区的时差?

例如,东部和中部的差异是1。我下面的解决方案感觉很老套。有没有更简单/更好的方法?vardiff=(parseInt(moment().tz("America/New_York").format("ZZ"))-parseInt(moment().tz("America/Chicago").format("ZZ")))/100;我的示例使用Momentjs图书馆。 最佳答案 计算两个任意时区之间的差异是不可能的。您只能计算特定时刻的差异。伦敦和纽约目前时差4小时(写于2015年3月25日)。但几周前相差5小时,几周后将是5小时。每个时

JavaScript 检查时区名称是否有效

有没有一种方法可以在不使用外部库的情况下在JavaScript中检查时区名称是否有效?当用户在文本字段中输入时区名称时,我想验证时区是否有效?我知道我们可以使用moment-timezone库轻松完成。但我不想使用任何额外的库。我正在寻找纯JavaScript方式。isValidTimeZone(name){//returntrue/false}isValidTimeZone('Asia/Colombo');//returnstrueisValidTimeZone('America/Los_Angeles');//returnstrueisValidTimeZone('MyTimeZo

JavaScript 时区对于过去的夏令时转换规则是错误的

2007年,我们改用夏令时的日子发生了变化。在该更改之前落入DST扩展范围内的任何日期都会在Chrome和Firefox中报告不正确的时区偏移。就像Firefox和Chrome没有注意到DST曾经有不同的日子一样。如果您运行以下脚本,它将报告240分钟的偏移量。不对,应该报300分钟。IE10正确地做到了这一点。有人知道修复方法吗?alert(newDate('11/04/2004').getTimezoneOffset());更新:这是我刚刚拼凑的一段有趣的代码(见下文)。令人惊讶的是,除了IE之外,每个浏览器中的大多数日期都相差多远。将开始日期和结束日期与此进行比较:http://