【问题标题】:moment.js returns different timezonesmoment.js 返回不同的时区
【发布时间】:2017-07-30 23:34:54
【问题描述】:

我正在使用此代码创建 2 个代表过滤日期范围的日期(在本例中为过去 3 个月):

$ctrl.startDate = moment().utc().startOf('month').add(-2, 'months').toDate();
$ctrl.endDate = moment().utc().endOf('month').add(0, 'months').toDate();

但是,第一个返回的日期是 CET (GMT+1) 时区(这是我的时区),第二个是 CEST (GMT+2)。我不知道为什么!我曾尝试使用 utc() 来获取“中性”日期,但没有成功。

返回日期:

01.01.2017 01:00:00 CET

01.04.2017 01:59:59 CEST

我想要 GMT 或 CET 但相同区域!时刻从哪里获得这两个区域?

到目前为止,我认为这是一个错误。

我使用的是 2.17.1 版本

有什么想法吗?

JSFIDDLE: https://jsfiddle.net/FLhpq/8807/

【问题讨论】:

  • 不是错误;四月是在从标准时间切换到夏令时之后。这就是额外的“S”的意思。
  • 您不妨阅读dst tag wikitimezone tag wiki 了解更多信息。
  • 此外,您还可以阅读有关 2017 年 3 月 26 日欧洲 DST 开关here 的信息。

标签: javascript timezone momentjs utc timezone-offset


【解决方案1】:

我不知道您是否可以将其视为错误,在您的小提琴中,您在toDate() 的结果中显示,正如文档所说:

获取 Moment.js 包装的原生 Date 对象

如果您查看momentjs the code,您会看到toDate() 的实现:

function toDate () {
    return new Date(this.valueOf());
}

只使用new Date(),它在本地时间返回一个JavaScript日期对象,见MDN Date

注意:如果 Date 被调用为具有多个参数的构造函数,则指定的参数表示本地时间。如果需要 UTC,请使用具有相同参数的 new Date(Date.UTC(...))。

如果您在代码中使用format(),您将始终看到+00:00 偏移量。

var divUtc = $('#divUTC');
var divLocal = $('#divLocal');  

var startDate = moment.utc().startOf('month').add(-2, 'months').format('YYYY-MM-DDTHH:mm:ssZ');
var endDate = moment.utc().endOf('month').add(0, 'months').format('YYYY-MM-DDTHH:mm:ssZ');
//put UTC time into divUTC  
divUtc.text(startDate);      
divLocal.text(endDate); 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.2/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.7/moment-timezone-with-data-2010-2020.min.js"></script>

UTC<br/>
<div id="divUTC"></div><br/>
Your Local Time with respect to above UTC time<br/>
<div id="divLocal">
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 2023-03-23
    • 2015-03-23
    • 1970-01-01
    • 2017-01-24
    相关资源
    最近更新 更多