首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Chrome中,新日期(字符串日期)正在工作,但在Firefox中,它显示为无效日期

在Chrome中,新日期(字符串日期)正在工作,但在Firefox中,它显示为无效日期
EN

Stack Overflow用户
提问于 2020-10-05 17:24:26
回答 1查看 83关注 0票数 0

在Chrome新日期(‘8-5月-20’)正在工作,但在Firefox中,它显示为无效日期

Chrome:

火狐

请建议我如何使它在两种浏览器(火狐和Chrome)中工作。

EN

回答 1

Stack Overflow用户

发布于 2020-10-09 22:52:02

下面是解析这种日期格式的一种方法。在某些环境中可能需要Date#toLocaleDateString的填充.或者你只需要硬编码MONTHS

CENTURY被硬编码为21。如果包含任何20世纪的日期,您将需要额外的逻辑来处理它们。如果这些日期中的任何一个是< 1920 (根据这个应用程序打算使用的时间进行调整),您将点击Y2K问题。因此,2位数的年份作为一种规范的日期格式通常是个坏主意.

代码语言:javascript
运行
复制
const MONTHS = [...new Array(12).keys()].map(n =>
    new Date(1970 /* year not important */, n, 15 /* nor the day */)
        .toLocaleDateString('en-US', { month: 'short' })
        .toUpperCase())
// ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"]

const CENTURY = 21

const dateFromServerStr = str => {
    const [d, m, y] = str.split('-')
    
    return new Date(
        (CENTURY - 1) * 100 + Number(y),
        MONTHS.indexOf(m),
        Number(d),
    )
}

console.log(dateFromServerStr('8-MAY-20').toString())

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64213411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档