Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript日期对象返回';无效日期';我的约会字符串_Javascript_Date - Fatal编程技术网

Javascript日期对象返回';无效日期';我的约会字符串

Javascript日期对象返回';无效日期';我的约会字符串,javascript,date,Javascript,Date,我想用Javascript创建一个日期对象,使用这个字符串04/21/2014 12:00p 当传递给构造函数(新日期('04/21/2014 12:00p'))时,它返回无效日期 我见过其他文章为了满足有效日期字符串的要求而操纵字符串,但是这不是我想要的。我希望Javascript能够识别我的日期格式(m/dd/yy h:mmt)。在Java中,类似的事情很简单,我想Javascript中也会有类似的方式 如何让Date对象识别我的格式?可以通过操纵字符串来满足要求,但您需要处理所有浏览器问题

我想用Javascript创建一个日期对象,使用这个字符串
04/21/2014 12:00p
当传递给构造函数(
新日期('04/21/2014 12:00p')
)时,它返回
无效日期

我见过其他文章为了满足有效日期字符串的要求而操纵字符串,但是这不是我想要的。我希望Javascript能够识别我的日期格式(
m/dd/yy h:mmt
)。在Java中,类似的事情很简单,我想Javascript中也会有类似的方式


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

可以通过操纵字符串来满足要求,但您需要处理所有浏览器问题


一种更快捷、更肮脏的方法是使用库。它也有助于格式化问题。

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


一种更快捷、更肮脏的方法是使用库。它也有助于格式化问题。

只有在使用以下库时,这才是微不足道的:

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


如果这个字符串是从某个后端进程发送的,您可以考虑将格式更改为标准交换格式。例如
“2014-04-21T12:00:00”

只有在使用以下库时,这才是微不足道的:

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


如果这个字符串是从某个后端进程发送的,您可以考虑将格式更改为标准交换格式。例如,
“2014-04-21T12:00:00”

如果您不想将日期分割成几段并手动处理,则必须使用一个为您执行此操作的库。但是,好吧,没有办法以本机方式完成。您可以扩展本机对象以接受Java格式并构建有效的日期对象,这样,您只需要在代码中执行一次。另一种常用方法是传递日期的毫秒数,并在构造函数中使用它,而不是在string@Brett您的意思是将日期字符串转换为历元值吗?如何从字符串中获取日期?您在Java代码中是否有访问日期对象的权限?如果是这样,将以字符串形式传递该日期的机制切换为以表示自1970年1月1日以来毫秒(历元值)的双精度形式传递该日期。这就省去了除将其标准化为本地时间之外的麻烦,而本地时间本身就是另一个问题。如果您不想将日期分割成几段并手动处理,则必须使用一个为您执行此操作的库。但是,好吧,没有办法以本机方式完成。您可以扩展本机对象以接受Java格式并构建有效的日期对象,这样,您只需要在代码中执行一次。另一种常用方法是传递日期的毫秒数,并在构造函数中使用它,而不是在string@Brett您的意思是将日期字符串转换为历元值吗?如何从字符串中获取日期?您在Java代码中是否有访问日期对象的权限?如果是这样,将以字符串形式传递该日期的机制切换为以表示自1970年1月1日以来毫秒(历元值)的双精度形式传递该日期。除了将其标准化为当地时间,这本身就是另一个问题,这省去了令人头疼的问题
var dt = moment("04/21/2014 12:00p","MM/DD/YYYY h:mma").toDate();
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 */ 
   }
}