【问题标题】:Parsing this format of data into a new one?将这种格式的数据解析为新格式?
【发布时间】:2019-05-24 04:51:18
【问题描述】:

我有一种格式可以返回一些日期,我需要将其解析为其他我觉得有点复杂的格式。

数据格式为Mon Dec 24 2018 9:00:00例如startDateFriday Dec 28 2018 17:00:00例如endTime。这里发生的情况是,我选择了我希望某人每天早上 9 点到 17 点开始工作,但我的数据所做的是让他看起来像是在不停地工作。

我尝试过对其进行映射并将其放在具有一周中的几天以及开始和结束时间的对象上,但我遇到了一个问题,因为我创建了类似的对象

dates : {
    monday: {
        start: 9:00,
        end: 18:00
    },
    tuesday: {
        start:9:00,
        end:18:00
    }
// etc for everyday of the week
}

但是,例如,如果我只需要周一到周四,那将是一个问题。任何人都有任何想法,我怎么能以其他方式做到这一点?我在考虑使用moment.js

【问题讨论】:

    标签: reactjs react-native momentjs


    【解决方案1】:

    我不确定我是否理解您的问题,但我认为您想列出两个不同日期之间的所有天数,这是一个使用 moment.isSameOrBeforemoment.add 函数迭代数天的函数示例,希望这个帮助:

      function toDays(startDateString, endDateString) {
    
        const startDate = moment(startDateString, 'dddd MMM DD YYYY');
        const endDate = moment(endDateString, 'dddd MMM DD YYYY');
    
        const dates = {};
    
        while(startDate.isSameOrBefore(endDate, 'day')) {
           const currentDay = startDate.format('dddd');
           dates[currentDay] = {start:'9:00', end:'18:00'};
           startDate.add(1, 'days');
        }
    
        return dates;
    
      }
    
    
      const result = toDays('Monday Dec 24 2018', 'Friday Dec 28 2018');
    
      console.log(result);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>

    【讨论】:

    • 嗯,如果我的字符串同时包含所有内容,工作日月日年和小时会怎样
    • @CristianDuma,那么您应该根据日期时间字符串更改格式,例如:const startDate = moment(startDateString, 'dddd MMM DD YYYY HH:mm:ss'); 如果您想包含小时、分钟和秒
    • 我愿意,但在这种情况下我必须去掉日期,对吧?我尝试了一些东西,但我把它弄坏了,因为我真的不明白那一刻
    猜你喜欢
    • 2020-07-04
    • 2018-03-07
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多