gpt4 book ai didi

javascript - Ext-js 中的自定义渲染器 - Bryntum/ExtJs UTC 日期问题

转载 作者:行者123 更新时间:2023-11-30 18:13:48 25 4
gpt4 key购买 nike

我正在尝试向 Bryntum Ext 甘特图添加一个自定义渲染器

我有以本地时区显示的日期,但我希望以 UTC 日期显示它们,因为这是数据源用来向用户显示日期(它与浏览器时区无关)的日期源应用程序。

这里的帖子将我引向了正确的方向(根据我的测试,这似乎是我所需要的):Why does ExtJS subtract a day when formatting a date?

如何将链接的解决方案实现到自定义渲染器中


我试过了,该列是空白的:

{
xtype:'startdatecolumn',
sortable: false,
text: 'Start',
dataIndex: 'StartDate',
renderer: function (v, m, r) {
return Ext.util.Format.date(Ext.Date.parse(v, "Y-m-d"), "m-d-Y");
}
}

也试过这个,列是空白的:

{
xtype:'startdatecolumn',
sortable: false,
text: 'Start',
dataIndex: 'StartDate',
renderer: function (v) {
var dt = Ext.Date.parse(v, "Y-m-d");
Ext.util.Format.date(dt, "m-d-Y");
return dt;
}
}

使用这种格式,它显示本地时区的日期(不正确,除非设置为 UTC)。

{   
xtype:'enddatecolumn',
dataIndex: 'EndDate',
sortable: false,
text: 'End'
}

Brytum 列示例

 columns : [
{
xtype : 'treecolumn',
header: 'Tasks',
sortable: true,
dataIndex: 'Name',
width: 200,
field: {
allowBlank: false
},
renderer : function(v, meta, r) {
if (!r.data.leaf) meta.tdCls = 'sch-gantt-parent-cell';

return v;
}
},
{
xtype : 'startdatecolumn'
},
{
//hidden : true,
xtype : 'enddatecolumn'
},

最佳答案

使用这个函数修复:

function niceDate (v, m, r) {
var dt = padStr(1 + v.getMonth()) +
'-' +
padStr(v.getDate()) +
'-' +
padStr(v.getFullYear());
return dt;
}

function padStr(i) {
    return (i < 10) ? "0" + i : "" + i;
}

并在列渲染器中:

                   {
xtype:'startdatecolumn',
sortable: false,
text: 'Start',
dataIndex: 'StartDate',
renderer: niceDate
}

解析 xml 时,我使用带有以下时间戳的开关函数:

case 'timestamp':
if(!empty(v))
v = new Date(parseInt(v));
break;

这似乎可靠地向 ext.js 提供了一个“日期”对象,并且使用渲染器渲染该列以匹配我们的源日期格式。

关于javascript - Ext-js 中的自定义渲染器 - Bryntum/ExtJs UTC 日期问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13871851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com