【发布时间】:2012-04-25 05:26:40
【问题描述】:
编辑 2012 年 4 月 16 日:我解决了将时区缩写为字母格式的问题,必须下载第三方排序方法并添加一些东西才能获得所需的结果。现在唯一的问题是夏令时处理程序,但有很多主题。但是,如果有人知道如何处理 UTC 夏令时处理程序,请随时提供帮助。
谢谢大家。 ///////////////////////////////////////// ///////////////////////////////////////// ///////////////////////////////////////// / 我制作了一个 html 表,我使用 knockoutjs 从私有服务器中提取信息,并使用 JSON 函数将其与 javscript 视图模型绑定。我正在尝试使每列可排序(单击一次列标题以根据该列的信息按降序排列所有内容;再次单击标题以使所有内容按升序排列,第三次按原始顺序排列所有内容)。
请注意:我已经搜索了我的问题并看到了其他解决方案,但到目前为止没有任何东西对我有用。我希望找到针对我的代码的解决方案。
Javascript ViewModel.js 文件基本上是这样的:
Event(column1, column2, ...., columnN){
var self = this;
self.column1 = column1;
self.column2 = column2;
.
.
}
//Sort column2 that has the Dates (dd (day) HHMM (hours/minutes) mmm (month) yy (year) format)
self.sortColumn = "Column2"
self.sortAscending = true;
self.SortByDates = function(){
if(self.sortColumn == "Column2")
self.sortAscending = !self.sortAscending;
else{
self.sortColumn = "Column2"
self.sortAscending = true;
}
self.rows.sort(function(a,b){
if(self.sortAscending == true)
for(self.Column2 in self.rows)
return a.Column2 > b.Column2 ? 1 : a.Column2 < b.Column2 ? -1 : 0;
else
return a.Column2 < b.Column2 ? 1 : a.Column2 > b.Column2 ? -1 : 0;
});
}
//specify location of server and info and get them
function getEvents(){
$.getJSON("http://.........",
function (data){
$.each(data.d, function(i, item){
handleEvent(item)
})
}
);
}
//pushes (AKA populates) info from server into the table
function handleEvent(item){
var newEvent = new Event(item.Column1InfoFromServer,
formatJSONDate(item.Column2DateInfoFromServer), .....)
this.Model.rows.push(newEvent);
}
//Formats the date info from server into dd (day) HHMM (hours/minutes) mmm (month) yy (year)
formatJSONDate(jsonDate){
var date = new Date(parseInt(jsonDate.substr(6)));
return date.format("dd HHMM mmm yy");
}
this.Model = new ViewModel();
this.getEvents();
ko.applyBindings(this.Model);
我很难以转换后的形式获取日期(是的,它必须是那种形式 --> 实际上,我仍然需要弄清楚如何在之后包含时区缩写'HHMM' 部分基于 UTC)。因此,假设我在表中的其他日期中有“11 1136 Apr 12”和“22 1624 Jan 12”。现在,当我尝试根据日期对表格进行排序时,它们的排序不正确。任何帮助表示赞赏,谢谢。
编辑:为了清楚起见,我正在尝试以军事时区代码(时区“A”-“Z”)显示时区。此外,从服务器获取的日期已经是 UTC。
【问题讨论】:
标签: javascript mvvm knockout.js date-sorting