如何将此分为新日期

时间:2011-06-24 22:50:12

标签: javascript regex

我从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之前的所有内容并放弃其余部分然后它会起作用吗?

有人可以告诉我正则表达式会是什么样子,还是有其他解决方案?

6 个答案:

答案 0 :(得分:4)

我认为你如何调用$j(this)可能会出现问题,因为当我将其全部删除时,它会起作用:

var shippedDate = new Date("2011-06-24T03:00:00");

 $("#result").append(shippedDate.getDate() + "/" + shippedDate.getMonth() + "/" + shippedDate.getFullYear() );

http://jsfiddle.net/jasongennaro/Ry9u8/

答案 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编码器,所以我的语法可能略有偏差,但我希望你明白这一点。