在javascript中向本地时间戳添加时间戳偏移量
Add timestamp offset to local timestamp in javascript
假设我在斯里兰卡(偏移量+5.30)。我想在美国当地时间上午8点(偏移量-10.00)安排一次会议,而我住在斯里兰卡。我想通过将美国的偏移量添加到我的本地时间戳来创建我的时间戳。有没有人知道如何在不使用即时时区的情况下用javascript实现这一点。我所做的是,
var localTimestamp = new Date('2015-02-27 14:59').getTime();
var offset = parseInt('-10.00')*60*60;
var timestamp = (localTimestamp/1000) + offset;
转换回当地时间后,上面给出了错误的结果。
这里有几个问题。
-
你在这里依赖于未记录的行为:
var localTimestamp = new Date('2015-02-27 14:59').getTime();
规范中未定义该字符串格式。V8将解析它(截至本文撰写之时),但您不能保证它是在本地时间还是UTC解析它,因为(再次)它是未定义的。要以定义的方式创建日期/时间,您可以在规范中使用日期/时间格式,但遗憾的是,他们在ES5中错误地使用了该格式,并不得不在ES6中进行修复:在ES5中将末尾缺少"Z"定义为UTC,但这与它所基于的ISO-8601标准不一致,意味着您无法说出"本地时间"。由于ES6将修复此问题,一些发动机已经改变了它;您的V8版本是否具有取决于版本号。因此,您最好使用多参数日期构造函数:
var localTimestamp = new Date(2015, 1, 27, 14, 59).getTime(); // Remember that months start at 0 -^
-
parseInt('-10.00')
没有任何原因;只需使用CCD_ 2。 -
这里你除以1000:
var timestamp = (localTimestamp/1000) + offset;
但你说
转换回当地时间后,上面给出了错误的结果。
返回时需要再次相乘:
var newDate = new Date(timestamp * 1000);
-
然后,您需要小心如何使用生成的
Date
,因为它仍然在它认为的本地时间内工作。但如果你把它转换成字符串等,你可以使用它。
相关文章:
- 如何每10.6秒从时间戳增加+1
- 使用AngularJS从时间戳中获取工作日
- 向 Firebase “push” 方法添加时间戳
- 在javascript中向本地时间戳添加时间戳偏移量
- 将多个csv文件中的时间戳数据添加到highchart中
- 如何将时间戳注释添加到我的输出文件中
- 使用Gulp向文件名添加时间戳
- 为返回的变量添加时间戳
- 如何为城市添加时间戳
- 添加自动增量或时间戳 - JavaScript,jstorage
- 将时间戳添加到已编译的 JavaScript 中
- 如何在firebase中更新字典,同时用angularjs添加时间戳
- 通过添加时间戳清除图像缓存
- 如何在NodeJs或javascript中添加24小时当前unix时间戳
- 添加时间戳到CSS id
- 将时间戳格式添加到折线图x轴
- 使用javascript将时间戳添加到iframe中的src(防止缓存)
- 以编程方式添加时间戳
- javascript php为多个单元格添加时间戳
- 如何在上传文件时为文件名添加时间戳