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

ExtJS日期格式转换问题:UTC转DD-MM-YYYY及特定日期转指定格式

嘿,针对你遇到的这两个ExtJS日期格式化问题,尤其是旧版本没有Ext.Date的情况,我给你整理了实用的解决方案:

问题1:将UTC日期转换为DD-MM-YYYY格式

如果你的ExtJS版本比较旧(比如3.x及更早),确实没有Ext.Date这个命名空间,不过我们可以用Ext.util.Format.date方法(这个在旧版本里通常是存在的),或者直接用原生JavaScript来处理:

方案1:使用Ext.util.Format.date

这个方法可以直接接收日期对象,指定格式化字符串即可:

// 示例:假设你有一个UTC日期对象(或者UTC时间戳)
const utcDate = new Date(Date.UTC(2018, 4, 3)); // 注意:月份是0-based,5月对应数值4
const formattedDate = Ext.util.Format.date(utcDate, 'd-m-Y');
console.log(formattedDate); // 输出:"03-05-2018"

方案2:原生JavaScript手动格式化

如果连Ext.util.Format.date都无法使用,那就用原生Date API手动处理,确保兼容所有环境:

function formatUtcToDDMMYYYY(utcDate) {
  // 获取UTC日期的日、月、年,注意补零
  const day = String(utcDate.getUTCDate()).padStart(2, '0');
  const month = String(utcDate.getUTCMonth() + 1).padStart(2, '0'); // 月份是0-based,需要加1
  const year = utcDate.getUTCFullYear();
  return `${day}-${month}-${year}`;
}

// 调用示例
const utcDate = new Date(Date.UTC(2018, 4, 3));
console.log(formatUtcToDDMMYYYY(utcDate)); // 输出:"03-05-2018"

问题2:将"Thu May 03 2018 14:34:57 GMT-0700 (PDT)"转换为"03-MAY-2018"格式

同样,因为旧版本没有Ext.Date,我们还是优先用Ext内置的工具方法,不行就用原生JS:

方案1:使用Ext.util.Format.date

先把字符串转为Date对象,再指定格式并转大写:

const dateStr = "Thu May 03 2018 14:34:57 GMT-0700 (PDT)";
const dateObj = new Date(dateStr);
// 用'd-M-Y'格式,然后转大写得到全大写的月份缩写
const formattedDate = Ext.util.Format.date(dateObj, 'd-M-Y').toUpperCase();
console.log(formattedDate); // 输出:"03-MAY-2018"

方案2:原生JavaScript手动格式化

如果Ext的工具方法也不可用,直接用原生JS处理:

function formatDateToDDMMMYYYY(dateStr) {
  const dateObj = new Date(dateStr);
  const day = String(dateObj.getDate()).padStart(2, '0');
  // 定义全大写的月份缩写数组
  const monthAbbrs = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'];
  const month = monthAbbrs[dateObj.getMonth()];
  const year = dateObj.getFullYear();
  return `${day}-${month}-${year}`;
}

// 调用示例
const dateStr = "Thu May 03 2018 14:34:57 GMT-0700 (PDT)";
console.log(formatDateToDDMMMYYYY(dateStr)); // 输出:"03-MAY-2018"

需要注意的是,原生Date构造函数解析这类字符串是浏览器兼容的,大部分现代和旧版浏览器都能处理这种格式的日期字符串。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:56:00