使用ExtJS 4.2.3
,我有FORM文本字段。我需要从商店到现场获得价值。我尝试以所需格式格式化数据时遇到问题。请求帮助语法格式化数据到DD-MM-YYYY
。
资料来源:/Date(1417986000000)/
尝试获取数据后:
Form_window.query('textfield[name="DateField"]')[0].setValue(NewDATA_store.getAt(1).get('DateData'))
我得到了:Mon Dec 08 2014 00:00:00 GMT+0300 (RTZ 2 (winter))
结果我需要:08.12.2014
在ExtJS Date
单例类中,你需要使用Ext.Date.formate()
方法。
用于处理日期的Date
类有用的静态方法请注意,如果需要并加载Ext.Date,它将为方便起见将所有方法/属性复制到此对象。
示例用法(请注意,必须使用'\'转义格式说明符才能将它们呈现为字符文字):
//Current date
var dt = new Date();
console.log(Ext.Date.format(dt, 'Y-m-d')); // 2017-12-26
console.log(Ext.Date.format(dt, 'F j, Y, g:i a')); //December 26, 2017, 11:28 am
console.log(Ext.Date.format(dt, 'l, \\t\\he jS \\of F Y h:i:s A')); //Tuesday, the 26th of December 2017 11:28:02 AM
在这个FIDDLE中,我使用form
,'textfield'和store
创建了一个演示。我希望这能帮助你或指导你。
Ext.create('Ext.data.Store', {
storeId: 'dateStore',
fields: [{
name: 'DateData',
type: 'date'
}],
data: [{
DateData: new Date()
}]
});
Ext.create('Ext.form.Panel', {
title: 'Simple Form',
bodyPadding: 5,
width: 350,
layout: 'anchor',
defaults: {
anchor: '100%'
},
// The fields
defaultType: 'textfield',
items: [{
fieldLabel: 'Today Date',
name: 'DateField',
readOnly: true
}],
renderTo: Ext.getBody(),
listeners: {
afterrender: function (form) {
var store = Ext.data.StoreManager.lookup('dateStore'),
date = store.getAt(0).get('DateData');
form.down('[name=DateField]').setValue(Ext.Date.format(date, 'd.m.Y'));
}
}
});
请尝试以下方法:
var inputDate = new Date('Mon Dec 08 2014 00:00:00 GMT+0300 (RTZ 2 (winter))');
var output = Ext.Date.format(inputDate, 'd.m.Y'); // will output: 08.12.2014
我使用ES6制作你的解决方案。 let就像var,但只获取声明let声明的上下文。有时是函数,有时是for,if ... var声明获取其父函数的上下文。这意味着不尊重fors或ifs或其他只是功能。我提供的功能正在发挥作用。
let formatDate = (param) => {
let day = param.getDate() < 10 ? '0' + param.getDate() : param.getDate();
let month = (param.getMonth()+1);
let year = param.getFullYear();
return day +"."+ month +"."+ year;
}
let date = new Date("Mon Dec 08 2014 00:00:00 GMT+0300 (RTZ 2 (winter))");
window.console.log(formatDate(date));