【问题标题】:Local date string in format yyyy/mm/dd is replacing mm with dd in javascript格式为 yyyy/mm/dd 的本地日期字符串在 javascript 中将 mm 替换为 dd
【发布时间】:2019-05-25 06:47:17
【问题描述】:

所以我在我的 json 中有这个字符串: “2019-05-24T14:43:39.89”

这是我显示这个日期的函数

function getDateAndTime(dateString){
        function addZero(i) {
        if (i < 10) {
        i = "0" + i;
        }
        return i;
        }
    let date = new Date(dateString);
    return addZero(date.getDay())+'/'+addZero(date.getMonth())+'/'+addZero(date.getFullYear())+ ' ' +addZero(date.getHours())+':'+addZero(date.getMinutes());
}

问题是输出是 2019 年 5 月 4 日 14:43

它在新的 Date 方法中替换月份和日期并将 24 转换为 4 我不知道为什么。

有没有办法将格式为 yyyy/mm/dd 的 utc 日期字符串转换为 dd/mm/yyyy 日期对象?在javascript中?

【问题讨论】:

  • 日期对象没有格式,它们只是一个数字(自纪元以来的毫秒数)和一些方法。
  • 那么考虑到时区,有什么方法可以将毫秒转换为日期对象?
  • 因为当我使用 new Date() 将毫秒转换为日期时,它会创建错误的日期。
  • new Date(milliseconds),确保值为 Number 类型。

标签: javascript date format


【解决方案1】:

getDay 方法返回星期几,而不是月份中的哪一天。 5 月 24 日是星期五,所以 getDay 返回 5。您应该使用返回 24 的 getDate

月份索引为零,getMonth 表示 May 返回 4 而不是 5。所以 addZero(date.getMonth()) 应该是 addZero(date.getMonth() + 1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-31
    • 2018-05-19
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多