【问题标题】:How to replicate a function using date-fns如何使用 date-fns 复制函数
【发布时间】:2023-03-09 13:21:01
【问题描述】:

我正在使用momentjs。使用它我创建了这个函数:

const convertToLocalTime = (userHour) => {
  return userHour + moment().set("hours", userHour).utcOffset() / 60;
}

console.log(convertToLocalTime(4))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

现在我想使用date-fns 库复制此函数,但我不知道如何执行此操作,无法在 date-fns 中找到替代方法。
如何,使用 date-fns 来复制上面那个使用 momentjs 的函数?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    我不使用date-fns,但您不需要任何库。

    下面是使用 JavaScript 的内置 Date 对象的相同逻辑:

    const convertToLocalTime = (userHour) => {
        const dt = new Date();
        dt.setHours(userHour);
        return userHour - dt.getTimezoneOffset() / 60;
    };
    
    console.log(convertToLocalTime(4));

    请注意,Moment 的 utcOffsetDategetTimezoneOffset 的符号相反。

    您可以使用另一种方法,因为 JavaScript 的 Date 对象同时具有本地和 UTC 日期/时间功能:

    const convertToLocalTime = (userHour) => {
        const dt = new Date();
        dt.setUTCHours(userHour); // Set the hours using the UTC function
        return dt.getHours();     // Get the hours using the local time function
    };
    
    console.log(convertToLocalTime(4));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-18
      • 2021-08-22
      • 2018-09-08
      • 2021-12-07
      • 2021-10-08
      • 2020-12-18
      • 2021-12-22
      • 2020-05-08
      相关资源
      最近更新 更多