如何以12小时格式获取extjs getHours()值,目前以24小时格式获取小时值

时间:2017-10-10 21:31:56

标签: extjs

Ext.application({
    name: 'Fiddle',
    launch: function () {
        var t1 = Ext.create('Ext.form.field.Time', {
            xtype: 'timefield',
            name: 'in',
            fieldLabel: 'Time In',
            minValue: '6:00 AM',
            maxValue: '8:00 PM',
            increment: 60,
            renderTo: Ext.getBody()
        });
        var time = Ext.Date.add(new Date(), Ext.Date.HOUR, + 14).getHours(); //getting hour values in 24 format want in 12 hours format
        t1.setMaxValue(time); //unable to setMaxValue
    }
});

1 个答案:

答案 0 :(得分:1)

  

您可以使用Ext.Date课程获得12小时格式。

以下是一些格式: -

  1. g 一小时的12小时格式,没有前导零1到12
  2. i 分钟,前导零号为00至59
  3. a 小写Ante meridiem和post meridiem am am或pm
  4. A 大写的Ante meridiem和Post meridiem AM或PM
  5. 我创建了一个Sencha fiddle演示,它展示了如何工作。希望这能帮助您解决问题。

    Ext.create('Ext.form.Panel', {
        title: 'Time Card',
        width: 300,
        bodyPadding: 10,
        renderTo: Ext.getBody(),
        defaults: {
            xtype: 'timefield',
            minValue: '6:00 AM',
            maxValue: '8:00 PM',
            increment: 30,
            anchor: '100%',
            listeners: {
                change: function (timefield, newValue) {
                    Ext.Msg.alert('Succes', 'Good you have selected <b>' + Ext.Date.format(newValue, 'g:i A') + '</b>');
                }
            }
        },
        items: [{
            name: 'in',
            fieldLabel: 'Time In'
        }, {
            name: 'out',
            fieldLabel: 'Time Out'
        }, {
            xtype: 'button',
            text: 'Get current GMT+14 Time',
            handler: function () {
                var date = new Date(),
                    dateGmtPlus14 = new Date(date.valueOf() + date.getTimezoneOffset() * 60000); //Multiply this by 60,000 (milliseconds in a minute) to get the milliseconds and subtract from the date to create a new date
    
                Ext.Msg.alert('Succes', 'Current time with GMT+14 is <br> 12 hours format : <b>' + Ext.Date.format(dateGmtPlus14, 'g:i:s A') +
                    '</b><br>24 hours format: <b> ' + Ext.Date.format(dateGmtPlus14, 'G:i:s') + '</b>');
            }
        }]
    });
    

    您可以使用Date.getTimezoneOffset()MDN。这将返回您的日期和GMT之间的时差,以分钟为单位。

    将此值乘以60,000(一分钟内的毫秒数)以获得毫秒数并从日期中减去以创建新日期。

    new Date(date.valueOf() + date.getTimezoneOffset() * 60000)