Javascript 在jQuery中使用变量格式化日期

Javascript 在jQuery中使用变量格式化日期,javascript,jquery,xml,date,Javascript,Jquery,Xml,Date,我正在尝试格式化一个日期,以便使用比较函数对数据进行排序 $(xml).find("item").each(function () { var dateText = $(this).find("Date").text(); var year = dateText.substr(0,4); var month = dateText.substr(4,2) ; var day = dateText.sub

我正在尝试格式化一个日期,以便使用比较函数对数据进行排序

$(xml).find("item").each(function () {
            var dateText = $(this).find("Date").text();
            var year = dateText.substr(0,4);
            var month = dateText.substr(4,2) ;
            var day = dateText.substring(6,2);
            var newDate = new Date(year, month, day);

当我显示新日期时,我会看到:2017年7月3日星期一00:00:00 GMT-0700(太平洋夏令时),这与2013年和2014年的实际日期并不接近。有没有人对如何正确地形成这一点提出建议?谢谢

这样的方法应该行得通

var dateText = $(this).find("Date").text();

if( dateText && dateText.length===8){
            var year = dateText.substr(0,4);
            var month = dateText.substr(4,2) ;
            var day = dateText.substring(6,2);
            var newDate = new Date(year, month, day);
}else{
   dateText='TBD';
   newDate='TBD';
}

这将取决于XML日期的格式。查看它的格式,并相应地调整
子字符串()
调用(或直接将其提供给
日期
对象,如果它是兼容格式)。格式为yyyymmddalso,大约有40个条目具有此日期元素。其余元素没有它。这能解决问题吗?你真的得看看数据<代码>控制台日志(日期文本);对数(年);控制台日志(月);控制台日志(天)将向您显示它正在处理的数据及其结果(您应该在错误控制台中看到这些消息)是的。。。首先检查dateText是否为空或未定义Hey Charlie:TBD正在启动,但显示的日期与上面相同。我认为这又回到了一个问题,即只有大约一半的项目包含“date”元素。我应该实现一个for循环来控制解析的项数吗?不要遵循这个问题。。。
if
的想法是,如果xml中缺少元素,或者返回长度小于8个字符的字符串,或者没有文本,则将设置
TDB
。可能需要
$.trim
如果XML中的日期有任何空格,TDB旁边的每个日期都显示为:2017年7月3日,而不是我创建DM的日期。我解析和放入新date()对象的日期都在2013年或2014年,因此日期格式不适用于我的输入。好吧……你真的需要开始使用
console.log(someVariable)
查看代码中的变量,看看它们是否与您认为的一样。打开浏览器控制台查看outputOk,我添加了console.log(newDate)和console.log(dateText)。在浏览器中运行页面时,出现以下消息:未捕获引用错误:未定义newDate