javascript - moment.js 将东部夏令时间转换为 UTC?

标签 javascript timezone timestamp momentjs

我有以下函数,可以将日期添加 30 个工作日。我正在传入 UTC,但输出给出了 东部夏令时 我该怎么做才能从此函数中仅获取 UTC?我已经尝试过 moment(tmpDate).utc() 但似乎没有任何效果。任何帮助都会很棒,谢谢!

function addBusinessDays(date, daysToAdd) {
        var cnt = 0;
        var tmpDate = moment(date);
        while (cnt < daysToAdd) {
            tmpDate = tmpDate.add('days', 1);
            if (tmpDate.weekday() != moment().day("Sunday").weekday() && tmpDate.weekday() != moment().day("Saturday").weekday()) {
                cnt = cnt + 1;
            }
        }

        return tmpDate._d;
    }

    var tmp = addBusinessDays("Tue Apr 04 2017 00:00:00 GMT+0000 (UTC)", 30);

最佳答案

正如查理指出的,您正在创建一个本地日期。 Moment,默认创建本地日期。

对您的函数进行一些小更改

function addBusinessDays(date, daysToAdd) {
        var cnt = 0;
        var tmpDate = moment.utc(date); // call utc to create a UTC date
        while (cnt < daysToAdd) {
            tmpDate = tmpDate.add('days', 1);
            if (tmpDate.weekday() != moment().day("Sunday").weekday() && tmpDate.weekday() != moment().day("Saturday").weekday()) {
                cnt = cnt + 1;
            }
        }

        return tmpDate.toDate(); // call toDate() to get the JS date out of Moment. Do not use internal private properties.
    }

现在,当你调用它时,你将得到一个 JS 日期对象。默认情况下,它将是本地的,这就是它们的工作方式。但是,您可以在 JS 日期上调用 toISOString 来获取日期的 UTC 表示形式。

var tmp = addBusinessDays("Tue Apr 04 2017 00:00:00 GMT+0000 (UTC)", 30);
console.log(tmp.toISOString());

关于javascript - moment.js 将东部夏令时间转换为 UTC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43400614/

相关文章:

SAS Teradata ODBC 时间戳

javascript - 没有可靠时间同步的基于时间戳的冲突解决

javascript - 为动态添加的列表元素添加事件监听器

java - 使用 tzupdater-2.2.0 更新 tzdata 2018f(2018-10-18 发布)时出错

javascript - JS : How to create a random picker that won't pick the same item twice?

javascript - 设置 Date 对象的时区

MySQL:在 my.cnf 选项文件中设置 time_zone

date - 使用 awk 或 sed 将时间戳(unix 13 位)转换为 csv 文件完整列的日期时间格式

javascript - 关于 jQuery 模式的问题

javascript - 在 Lambda 的 node8.10 中获取 API 调用导致 Promise <pending> 和 undefined