Javascript日期对象返回';无效日期';我的约会字符串
我想用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对象识别我的格式?可以通过操纵字符串来满足要求,但您需要处理所有浏览器问题
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 */
}
}