相关疑难解决方法(0)

如何将JavaScript日期初始化为特定时区

我将特定时区的日期时间作为字符串,我想将其转换为本地时间.但是,我不知道如何在Date对象中设置时区.

例如,Feb 28 2013 7:00 PM ET,我可以

var mydate = new Date();
mydate.setFullYear(2013);
mydate.setMonth(02);
mydate.setDate(28);
mydate.setHours(7);
mydate.setMinutes(00);  
Run Code Online (Sandbox Code Playgroud)

据我所知,我可以设置UTC时间或本地时间.但是,我如何在另一个时区设置时间?

我试图使用添加/减去UTC的偏移量,但我不知道如何应对夏令时.我不确定我是否正朝着正确的方向前进.

如何在javascript中将时间从不同的时区转换为当地时间?

javascript timezone

176
推荐指数
8
解决办法
23万
查看次数

如何在JavaScript中使用ISO 8601格式化带有时区偏移的日期?

目标:找到local timeUTC time offset以下列格式构建URL.

示例URL:/ Actions/Sleep?duration = 2002-10-10T12:00:00-05:00

格式基于W3C建议:http: //www.w3.org/TR/xmlschema11-2/#dateTime

文件说:

例如,2002-10-10T12:00:00-05:00(2002年10月10日中午,中央夏令时以及美国东部标准时间)等于2002-10-10T17:00:00Z,比2002-10-10T12:00:00Z晚5个小时.

所以基于我的理解,我需要通过新的Date()找到我的本地时间,然后使用getTimezoneOffset()函数来计算差异,然后将它附加到字符串的末尾.

1.以格式获取当地时间

var local = new Date().format("yyyy-MM-ddThh:mm:ss"); //today (local time)
Run Code Online (Sandbox Code Playgroud)

产量

2013-07-02T09:00:00
Run Code Online (Sandbox Code Playgroud)

2.以小时为单位获取UTC时间偏移量

var offset = local.getTimezoneOffset() / 60;
Run Code Online (Sandbox Code Playgroud)

产量

7
Run Code Online (Sandbox Code Playgroud)

3.Construct URL(仅限时间部分)

var duration = local + "-" + offset + ":00";
Run Code Online (Sandbox Code Playgroud)

输出:

2013-07-02T09:00:00-7:00
Run Code Online (Sandbox Code Playgroud)

以上输出结果表示我的当地时间是2013/07/02 9am,与UTC的差异是7小时(UTC是比当地时间早7小时)

到目前为止它似乎工作,但如果getTimezoneOffset()返回负值如-120怎么办?

我想知道在这种情况下格式应该是什么样的,因为我无法从W3C文档中找到答案.提前致谢.

javascript timezone date-formatting

90
推荐指数
7
解决办法
12万
查看次数

获取特定时区的时间

我正在使用JavaScript Date类并尝试使用getDate()方法获取当前日期.但显然它是加载系统的日期和时间.我正在运行来自印度的代码,但我希望使用相同的方法获取英国的日期和时间.我怎样才能做到这一点 ?

javascript time timezone date

57
推荐指数
5
解决办法
17万
查看次数

TypeError:moment().tz不是函数

使用jasmine进行测试时,我收到此错误.

TypeError:moment.tz不是函数

我尝试测试的代码是

let myDate = moment().tz(undefined, vm.timeZone).format('YYYY-MM-DD'); 
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing jasmine momentjs

41
推荐指数
6
解决办法
3万
查看次数

如何在用户的时区显示时间

我正在使用rails 3.0.5并且我已经在UTC中存储了created_at和updated_at.现在我想在用户的时区中显示created_at时间.我相信可以从浏览器中选择用户的时区,然后将时间转换为用户的时区.

我确信rails会有一个gem /插件来处理这样的事情.有东西吗?

ruby-on-rails

39
推荐指数
4
解决办法
3万
查看次数

使用JavaScript获取特定时区的日期时间

似乎JavaScript的Date()函数只能返回本地日期和时间.无论如何有时间为特定时区,例如GMT-9?

结合@ Esailija和@ D3mon-1stVFW,我想出来了:你需要有两个时区偏移,一个用于本地时间,一个用于目的地时间,这里是工作代码:

var today = new Date();  
var localoffset = -(today.getTimezoneOffset()/60);
var destoffset = -4; 

var offset = destoffset-localoffset;
var d = new Date( new Date().getTime() + offset * 3600 * 1000)
Run Code Online (Sandbox Code Playgroud)

这里有一个例子:http://jsfiddle.net/BBzyN/3/

javascript date

28
推荐指数
3
解决办法
5万
查看次数

有没有办法在Chrome devtools中更改您的时区?

我已经在JavaScript中创建了一个工具,该工具可以确定当前UTC时间并检查是否经过了另一个预定日期。

我想将浏览器更改为另一个时区,以查看测试是否仍然可以通过,但是我找不到解决方法。

Chrome开发人员工具中有没有办法做到这一点?如果没有,还有其他建议吗?

javascript jquery google-chrome google-chrome-extension google-chrome-devtools

15
推荐指数
3
解决办法
8810
查看次数

momentjs将datetime从另一个时区转换为UTC

我的日期如下:

05/30/2014 11:21:37 AM

我的用户将输入该数据并拥有自己的时区.它可能是"美国/东方","美国/太平洋 - 新"等等.我想将时间转换为UTC,但我无法做到.有办法吗?

我正在使用节点,我尝试了momentJS并阅读以下内容:

http://momentjs.com/docs/

http://momentjs.com/guides/

在JavaScript中将日期转换为另一个时区

如何从不同的时区转换为UTC?

编辑

我试过这些:

moment().utc(0).format('YYYY-MM-DD HH:mm Z')
moment.tz(dateString, "US/Eastern").format()
Run Code Online (Sandbox Code Playgroud)

在上面的例子中dateString是字符串日期.我想将时区设置为"US/Eastern"并将其转换为UTC.

node.js momentjs

13
推荐指数
1
解决办法
2万
查看次数

JSON日期序列化和时区

我在使用JSON序列化对象在客户端浏览器上显示正确日期时遇到问题.用户可以定义他们想要查看数据的时区.鉴于此,我将UTC日期转换为服务器上用户的时区.然后我想通过JSON将日期/时间(已经转换为定义的时区)序列化到浏览器.

看起来很简单,但是我一直在使用的JSON序列化程序已经严重破坏了我的日期.服务器为UTC,客户端位于Central(-6).即使我将DateTime.Kind指定为Unspecified,也会调整日期(-12小时).

不知何故,.NET知道客户端的浏览器在哪个时区以及服务器处于什么时区,即使我已根据用户的全局设置调整了时间并设置了日期,它也取消了我的日期/时间-6.有点不明确.如何才能让JSON序列化程序不尝试调整日期?

List<ErrorGridModel> models = Mapper.Map<ErrorCollection, List<ErrorGridModel>>(errors);
foreach (ErrorGridModel m in models)
{
    //convert UTC dates to user local dateTime - split out date vs. time for grouping & splitting columns
    DateTime dtLocal = TimeZoneInfo.ConvertTimeFromUtc(m.ErrorDate, this.AppContext.User.TimeZoneInfo);
    m.ErrorDate = new DateTime(dtLocal.Year, dtLocal.Month, dtLocal.Day, 0, 0, 0, DateTimeKind.Unspecified);
    m.ErrorTime = new DateTime(1900, 1, 1, dtLocal.Hour, dtLocal.Minute, dtLocal.Second, DateTimeKind.Unspecified);
}
IQueryable<ErrorGridModel> dataSource = models.AsQueryable();
return new ContentResult() { Content = JsonConvert.SerializeObject(dataSource.ToDataSourceResult(request), new JsonSerializerSettings() { DateFormatHandling = DateFormatHandling.MicrosoftDateFormat }), ContentType = "application/json" }; …
Run Code Online (Sandbox Code Playgroud)

.net timezone datetime json json.net

11
推荐指数
1
解决办法
2万
查看次数

.toISOString()函数问题

请考虑以下代码HTML + JavaScript:

<!DOCTYPE html>
<html>
<body>

<p id="demo">Click the button to display a date after changing the hours, minutes, and seconds.</p>

<button onclick="myFunction()">Try it</button>
 <script>
 function myFunction()
  {
  var d = new Date();
  d.setHours(0,0,0,0);
  document.write(d + '<br/>');
  document.write('ISO Date '+ d.toISOString() + '<br/>');
  //I want it to be 2013-04-17T00:00:00.000Z
  }
 </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

输出:

Thu Apr 18 2013 00:00:00 GMT+0530 (India Standard Time)
ISO Date 2013-04-17T18:30:00.000Z
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助理解日期和时间的这种差异

javascript

10
推荐指数
1
解决办法
2万
查看次数