为了账号安全,请及时绑定邮箱和手机立即绑定

在反应中将多个日期拆分为特定格式

在反应中将多个日期拆分为特定格式

红颜莎娜 2022-01-13 20:01:11
我想转换这么多日期2019 年 11 月 13 日星期三 00:00:00 GMT+0000 (UTC),2019 年 11 月 19 日星期二 00:00:00 GMT+0000 (UTC),2019 年 11 月 19 日星期二 00:00:00 GMT+0000 (UTC)到11/13/2019,11/19/2019,11/19/2019
查看完整描述

3 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

既然你标记了你的问题momentjs,这里有一个使用 moment JS 库的解决方案。首先你拆分你的字符串,然后你格式化每个日期,最后你加入字符串。


注意:这会给你一个警告,因为初始日期格式不是标准化的。


const dates = 'Wed Nov 13 2019 00:00:00 GMT+0000 (UTC),Tue Nov 19 2019 00:00:00 GMT+0000 (UTC),Tue Nov 19 2019 00:00:00 GMT+0000 (UTC)'


const parseDates = dates => (

  dates

  .split(',')

  .filter(date => moment(date).isValid())

  .map(date => moment(date).format('MM/DD/YYYY'))

  .join(',')

)


console.log(parseDates(dates));

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>


否则,如果您确定您的日期将始终具有相同的格式,您可以使用正则表达式手动解析它们:


const months = [ '', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

const dateRegex = /[\w]{3}\s{1}([\w]{3})\s{1}(\d{2})\s{1}(\d{0,4})\s/i


const dates = 'Wed Nov 13 2019 00:00:00 GMT+0000 (UTC),Tue Nov 19 2019 00:00:00 GMT+0000 (UTC),Tue Nov 19 2019 00:00:00 GMT+0000 (UTC)'


const parseDatesFallback = dates => (

  dates

  .split(',')

  .map(date => {

    date = date.match(dateRegex)

    return String(months.indexOf(date[1])).padStart(2, '0') 

      + '/'

      + date[2]

      + '/'

      + date[3]

  })

  .join(',')

)


console.log(parseDatesFallback(dates));


查看完整回答
反对 回复 2022-01-13
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

您可以简单地将日期列表映射到所需的日期格式。使用splitandjoin方法将字符串转换为数组并返回。例子:


const dates = 'Wed Nov 13 2019 00:00:00 GMT+0000 (UTC),Tue Nov 19 2019 00:00:00 GMT+0000 (UTC),Tue Nov 19 2019 00:00:00 GMT+0000 (UTC)';


const newDates = dates.split(',')

  .map(dateString => {

    const date = new Date(dateString);

    return `${date.getMonth() + 1}/${date.getDate()}/${date.getFullYear()}`;

  })

  .join(',');

console.log(newDates);


查看完整回答
反对 回复 2022-01-13
?
largeQ

TA贡献2039条经验 获得超7个赞

const str = 'Wed Nov 13 2019 00:00:00 GMT+0000 (UTC),Tue Nov 19 2019 00:00:00 GMT+0000 (UTC),Tue Nov 19 2019 00:00:00 GMT+0000 (UTC)'

const arr = str.split(',').map(a=>moment(a).format('MM/DD/YYYY'));

console.log(arr)

<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.7.0/moment.min.js" type="text/javascript"></script>


查看完整回答
反对 回复 2022-01-13
  • 3 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号