【问题标题】:How to convert JSON dates to Calender format?如何将 JSON 日期转换为日历格式?
【发布时间】:2019-04-08 14:27:06
【问题描述】:

我正在尝试将事件插入日历。问题是我的活动结构如下:xx/xx/xxxx 并且日历使用另一种格式 xx-xx-xxxx。我如何进行这种转变?

我已将日期从 JSON 格式转换为字符串,但我无法将 / 更改为 -

data.forEach(function (element) {

    let date = new Date(element.sessionDate)
    datesArr.push(date.toLocaleDateString())
})

console.log(datesArr)

现在我的数组看起来像这样:

0:“2018 年 12 月 24 日”

1:“2018 年 12 月 27 日”

2:“2019 年 1 月 3 日”

3:“2019 年 1 月 3 日”

4:“2019 年 1 月 7 日”

我对日历接收事件的预期结果应该是:['2019-03-04', '2019-03-08', '2019-03-12', '2019-03-15']

【问题讨论】:

标签: javascript arrays json date


【解决方案1】:

有几种方法可以做到这一点:

数组版本

您可以使用正则表达式替换它们,然后将匹配的值粘合在一起。

const input = '12/24/2018';
const parts = input.split('/');
const output = `${parts[2]}-${parts[0]}-${parts[1]}`;

console.log(new Date(output));

正则表达式版本

您可以使用正则表达式替换它们,然后将匹配的值粘合在一起。

const input = '12/24/2018';
const output = input.replace(/(\d{1,2})\/(\d{1,2})\/(\d{4})/, '$3-$1-$2');

console.log(new Date(output));

或者使用像moment.js这样的库

【讨论】:

  • 完美解释!
【解决方案2】:

将字符串值通过“/”分隔得到一个结果数组。然后用“-”加入数组以获取字符串结果。使用 Array.map() 转换为新数组。

const dates = ['2019/03/04', '2019/03/08', '2019/03/12', '2019/03/15'];

const formattedDates = dates.map( date => date.split("/").join("-"));

console.log(formattedDates); //["2019-03-04", "2019-03-08", "2019-03-12", "2019-03-15"]

【讨论】:

  • 嗨。我可以和你分享我的代码,这样你就可以帮我插入那个解决方案了吗?
  • 是的,请分享。我想帮你。
猜你喜欢
  • 1970-01-01
  • 2017-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-08
相关资源
最近更新 更多