Javascript日期对象返回'无效日期'为我的日期字符串

时间:2014-04-24 20:51:57

标签: javascript date

我想使用此字符串04/21/2014 12:00p在Javascript中创建一个Date对象 传递给构造函数(new Date('04/21/2014 12:00p'))时,它返回Invalid Date

我已经看过其他操作字符串的帖子,以满足有效dateString的要求,但这不是我想要的。我希望Javascript识别我的日期格式(m/dd/yy h:mmt)。在Java中,类似的东西很简单,我想在Javascript中会有类似的方式。

如何让Date对象识别我的格式?

3 个答案:

答案 0 :(得分:4)

仅在使用moment.js这样的库时才这是微不足道的:

var dt = moment("04/21/2014 12:00p","MM/DD/YYYY h:mma").toDate();

否则,您将需要进行大量的字符串操作。此外,您还必须考虑世界上使用m / d / y或其他格式而不是输入字符串的y / m / d格式的部分用户。

如果从某些后端进程发送此字符串,您可以考虑将格式更改为标准交换格式,例如ISO-8601。防爆。 "2014-04-21T12:00:00"

答案 1 :(得分:0)

要操作字符串以满足要求,可能是一种方法,但您需要处理所有浏览器问题。

更快速和更脏的方法是使用moment.js库。它也有助于格式化问题。

答案 2 :(得分:0)

if (String.prototype.dateFromJava == null)
{
   String.prototype.fromJava = function (sDateString)
   {
      var aDateOrTime = sDateString.splt(" ");
      var aDateParts  = aDateOrTime[0].split("/");
      var aTimeParts  = aDateOrTime[1].split(":");
      var oDate       = null;  

      /* just get the pieces and passing them in to new Date(), return oDate */ 
   }
}