You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ExtJS中将日期转换为DatePicker的取值格式?

解决方案

要实现将"22.11.2022 00:00:00"转换为指定格式并设置到ExtJS日期选择器中,按以下步骤处理:

1. 解析原始日期字符串为Date对象

原始日期格式为dd.MM.yyyy HH:mm:ss,必须用Ext.Date.parse明确指定格式解析,避免浏览器兼容性问题:

// 假设this.jsonData.dateData就是目标原始日期字符串
var rawDate = this.jsonData.dateData;
// 按「日.月.年 时分秒」格式解析为标准Date对象
var dateObj = Ext.Date.parse(rawDate, 'd.m.Y H:i:s');

2. 设置到选择器并配置显示格式

ExtJS日期选择器通常接受Date对象作为值,若要显示为Mon Nov 21 2022 00:00:00 GMT+0300 (GMT+03:00)格式,需配合配置选择器的format属性:

方式一:直接设置Date对象(推荐)

选择器会根据配置的格式自动渲染显示,同时保留Date对象作为内部值:

// 配置选择器的显示格式,匹配目标样式
view.picker.setConfig('format', 'D M j Y H:i:s \\G\\M\\T\\Z (\\G\\M\\T\\:Z)');
// 将解析后的Date对象设置为选择器值
view.picker.setValue(dateObj);

方式二:格式化为目标字符串(若选择器支持字符串值)

如果必须设置格式化后的字符串,先将Date对象转换为目标格式再赋值:

// 将Date对象格式化为你需要的字符串格式
var formattedDate = Ext.Date.format(dateObj, 'D M j Y H:i:s \\G\\M\\T\\Z (\\G\\M\\T\\:Z)');
// 设置到选择器
view.picker.setValue(formattedDate);

关键说明

  • 你之前使用的'l, \t\he jS \of F Y h:i:s A'格式串与目标样式不匹配,因此无效。需替换为对应占位符:
    • D:星期缩写(如Mon)
    • M:月份缩写(如Nov)
    • j:不带前导零的日期(如21)
    • Y:四位年份
    • H:i:s:24小时制时分秒
    • Z:时区偏移(如+0300)
  • 对于GMT这类固定文本,需用转义符\\处理,避免被识别为格式占位符。

内容的提问来源于stack exchange,提问作者wonka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 07:55:19