我从XML中获取一个返回日期的节点:
2011-06-24T03:00:00
如果我尝试运行新日期,则会收到NaN
错误。
var shippedDate = new Date($j(this).find("Shipment").find("Date").text())
$j("#result").append(shippedDate.getDate() + "/" + shippedDate.getMonth() + "/" + shippedDate.getFullYear() );
我想我需要使用正则表达式来获取T之前的所有内容并放弃其余部分然后它会起作用吗?
有人可以告诉我正则表达式会是什么样子,还是有其他解决方案?
答案 0 :(得分:4)
我认为你如何调用$j(this)
可能会出现问题,因为当我将其全部删除时,它会起作用:
var shippedDate = new Date("2011-06-24T03:00:00");
$("#result").append(shippedDate.getDate() + "/" + shippedDate.getMonth() + "/" + shippedDate.getFullYear() );
答案 1 :(得分:3)
它适用于我
var somedate = new Date('2011-06-24T03:00:00');
// Fri Jun 24 2011 03:00:00 GMT+0300 (GTB Daylight Time)
演示http://jsfiddle.net/gaby/8Xwbj/2/
您确定$j(this).find("Shipment").find("Date").text()
会返回您期望的内容吗?
答案 2 :(得分:0)
您应该使用Date.parse()
从字符串中获取日期:)
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/parse
答案 3 :(得分:0)
这样可行:
"2011-06-24T03:00:00".match(/(\d{4}-\d{2}-\d{2})/)[0]
答案 4 :(得分:0)
dateString必须遵循RFC 1123时间戳或JavaScript 1.8.5 subset of ISO 8601日期字符串,以便parse
method可以接收它。
来自Mozilla JavaScript reference:
新日期(毫秒)
新日期(dateString)dateString 表示日期的字符串值。该 字符串应采用格式 通过解析方法识别 (符合IETF的RFC 1123时间戳)。
毫秒 表示数字的整数值 自1970年1月1日以来的毫秒数 00:00:00 UTC。
答案 5 :(得分:0)
尝试将javascript的String对象的indexOf
方法与substr
方法结合使用,即:
$string.substr(0, $string.indexOf('T'));
我更像是java / perl编码器而不是javascript编码器,所以我的语法可能略有偏差,但我希望你明白这一点。