【问题标题】:How to generate momentjs format from custom time object如何从自定义时间对象生成 momentjs 格式
【发布时间】:2021-04-02 11:58:40
【问题描述】:

上下文:

您好,我正在尝试根据给定的开始时间和结束时间生成 moment.js format

let sourceTime = {
  "startTime": "0600", // 6 AM
  "endTime": "2100" // 9 PM
}

使用上面的 endTime 属性,我试图以以下格式获取时间:

2021-02-04T09:00 pm 即这种格式https://momentjs.com/docs/#/displaying/format/ - "YYYY-MM-DDThh:mm a"

使用这段代码

let currentDate = moment().format('DD-MM-YYYY');
let savedFormat = moment(`${currentDate} ${sourceTime.endTime.substring(0, 2)}:${sourceTime.endTime.substring(2, 4)}`).format('YYYY-MM-DDThh:mm')

我使用字符串文字以自定义方式添加当前日期和结束时间以生成所需的格式。

问题:

我现在是上午 9:00,而不是晚上 9:00。

2021-02-04T09:00 上午

不知道我在哪里做错了。任何建议都会有所帮助。

let sourceTime = {
  "startTime": "0600", // 6 AM
  "endTime": "2100" // 9 PM
}

let currentDate = moment().format('DD-MM-YYYY');
let savedFormat = moment(`${currentDate} ${sourceTime.endTime.substring(0, 2)}:${sourceTime.endTime.substring(2, 4)}`).format('YYYY-MM-DDThh:mm')

console.log(savedFormat);

//Shows am instead of pm
console.log(moment(savedFormat).format('YYYY-MM-DDThh:mm a'));
//OUTPUT
<script src="https://momentjs.com/downloads/moment.min.js"></script>

【问题讨论】:

    标签: javascript momentjs moment-timezone


    【解决方案1】:

    咨询Momentjs Format后,我提出以下解决方案:

    let sourceTime = {
      "startTime": "0600", // 6 AM
      "endTime": "2100" // 9 PM
    }
    const startTime = moment(sourceTime.startTime, 'HHmm').format('YYYY-MM-DD h:mm a');
    const endTime = moment(sourceTime.endTime, 'HHmm').format('YYYY-MM-DD h:mm a');
    
    console.log(startTime + ' to ' + endTime);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

    【讨论】:

    • 在此格式稍作修改后工作。谢谢 const startTime = moment(sourceTime1.startTime, 'HHmm').format('YYYY-MM-DDThh:mm a'); const endTime = moment(sourceTime1.endTime, 'HHmm').format('YYYY-MM-DDThh:mm a'); console.log(startTime + ' to ' + endTime);
    【解决方案2】:

    试试下面的例子看看它是否有效

    console.log(
        moment('Mon 03-Jul-2017, 11:00 AM', 'ddd DD-MMM-YYYY, hh:mm A')
        .format('hh:mm A')
    );
    
    console.log(
        moment('Mon 03-Jul-2017, 11:00 PM', 'ddd DD-MMM-YYYY, hh:mm A')
        .format('hh:mm A')
    );
    

    【讨论】:

    • 11:00 PM / 11:00 AM - 我认为这里有些混乱。我正在尝试从“2100”(即 24 小时格式)生成时刻对象。
    猜你喜欢
    • 1970-01-01
    • 2016-11-16
    • 2014-10-20
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    相关资源
    最近更新 更多