【问题标题】:How to revert date DD/MM/YYYY to YYYY-MM-DD?如何将日期 DD/MM/YYYY 还原为 YYYY-MM-DD?
【发布时间】:2018-03-31 17:59:40
【问题描述】:

如何使用正则表达式将日期格式时间从 DD/MM/YYYY 转换为 YYYY-MM-DD

【问题讨论】:

  • 这只是一个字符串还是Date?你试过什么?您是否查看过 moment.js 之类的库?我们不会只为您做所有事情。

标签: javascript html json regex


【解决方案1】:

您可以使用regexreplace() 方法轻松实现您的结果。

Regex 在这些情况下非常有用。

 var yourString = "16/05/2017";
 var desired = yourString.replace(/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/, "$3-$2-$1");

上述模式的解释

在上面regex;

\d - 匹配一个数字(等于 [0-9])

{1, 2} - 检查 1 次或 2 次[因为日期和月份只能是 1 位数(例如 1)或 2 位数(例如 01)]

{4} - 检查了 4 次(你可以相应地改变它)

^ - 断言字符串开头的位置

$ - 在字符串的末尾断言位置,或者在字符串末尾的行终止符之前(如果有的话)

在第二个(替换)字符串中,$3$2$1 表示正则表达式(前面提到的那个)后跟连字符(-)的顺序,这就是您所期望的。

您还可以在here 中测试上述模式或在here 中测试整个代码。

问候:)

【讨论】:

  • 这将匹配一个字符串,但它如何用于转换为字符串?这就是问题所在。
  • 最佳答案 :) 我知道了。
【解决方案2】:

很简单:

yourString.split('/').reverse().join('-')

split 部分将按照数字第一次出现的顺序组成一个数组。

reverse 将更改顺序,在您的情况下,从 daymonthyearyearmonthday

join 将使用'-' 分隔符将数组转换为字符串。

【讨论】:

  • 不,他也改变了数字的顺序
  • 或许您可以对为什么这样有效。
  • @TKoL 对。他们颠倒过来了。就像这个答案一样。
【解决方案3】:

尝试拆分 / 字符上的字符串并以正确的格式重新组合:

var dateString = '16/05/2017'; // to format "2017-05-16"
var nums = dateString.split('/');
var newDateString = `${nums[2]}-${nums[1]}-${nums[0]}`
console.log(newDateString)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 2014-05-30
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多