extjs - 关于 UTC 格式的日期时间字段
问题描述
我是 ExtJS 的新手。我有 2 个日期列,我想采用 UTC 格式。为此,我使用(来自网络):
renderer: function (value) {
return moment.utc(value).format('YYYY-MM-DD HH:mm:ssZZ');
},
2 个日期列的定义如下:
..., {
xtype: 'datecolumn',
header: 'Start Date',
dataIndex: 'start_date',
flex: 1,
editor: {
xtype: 'datetimefield',
itemId: 'startdt',
allowBlank: false,
format: 'd/m/Y H:i:s',
},
renderer: function (value) {
return moment.utc(value).format('YYYY-MM-DD HH:mm:ssZZ');
},
},
{
xtype: 'datecolumn',
header: 'End Date',
dataIndex: 'end_date',
flex: 1,
editor: {
xtype: 'datetimefield',
itemId: 'enddt',
allowBlank: false,
format: 'd/m/Y H:i:s',
},
renderer: function (value) {
return moment.utc(value).format('YYYY-MM-DD HH:mm:ssZZ');
},
},...
对于模型:
Ext.define('xxxxx.model.Deployment', {
extend: 'Ext.data.Model',
fields: [{
name: 'id',
type: 'int',
persist: true
}, {
name: 'name',
type: 'string'
}, {
name: 'start_date',
type: 'date',
}, {
name: 'end_date',
type: 'date'
}, ...
当我单击其中一个日期时间字段进行编辑时,它会增加一小时,对应于当地时间(法国),格式不一样:
请问在编辑过程中如何防止这种情况?我花了将近 2 天的时间试图解决这个问题......
谢谢你的帮助
卡里姆
解决方案
尝试把'moment.utc(value).format('YYYY-MM-DD HH:mm:ssZZ');' 在模型的转换或计算中。就像是:
{
name: 'end_date',
type: 'date',
convert: function(value) { // or calculate, have a look in the api doc
return moment.utc(value).format('YYYY-MM-DD HH:mm:ssZZ');
}
}
之后从渲染器中删除时区转换。
推荐阅读
- temperature - 使用树莓派 pico 和 DHT22 传感器作为气象站的 1602 LCD 显示器显示额外小数点出现问题
- kendo-ui - 如何动态分配 Kendo UI Scheduler workDayStart?
- python - Python:带有计数器的for循环和计划增加的增加
- android - 在 Shape Drawable 中调整高度
- c# - 每次迁移中始终包含播种记录
- python - Chrome Devtools 网络 Selenium python
- froala - Froala 附加 Outlook 电子邮件文件导致“出现问题”
- c++ - 如何在模板函数中实现模板类类型?
- vue.js - Vue 路由器警告消息“与参数一起传递,但它们将被忽略”
- solr - 如何从 Apache Solr 下载/导出数据到 CSV 文件?我在 Solr 中创建了集合,我想将数据从 Solr 导出到 CSV