繁体   English   中英

JavaScript将“ 05/27 11:00 pm”转换为日期吗?

[英]Javascript convert “05/27 11:00pm” to date?

如何将没有年份的日期字符串转换为JS Date对象? 以及如何将带有年份和时间的日期字符串转换为JS Date对象?

只需将它们传递给Date()构造函数,就可以将许多不同的日期格式转换为日期对象:

var date = new Date(datestring);

您的示例日期不起作用有两个原因。 首先,它没有一年。 其次,在“ pm”之前必须有一个空格(我不确定为什么)。

// Wed May 27 2009 23:00:00 GMT-0700 (Pacific Daylight Time)
var date = new Date("2009/05/27 11:00 pm")

如果您收到的日期格式一致,则可以通过以下方式进行修正:

var datestring = "05/27 11:00pm";
var date = new Date("2009/" + datestring.replace(/\B[ap]m/i, " $&"));

我将使用Datejs库的parse方法。

http://www.datejs.com/

我尝试了您的示例,但效果很好...

5/27 11:00下午

2009年5月27日,星期三,晚上11:00:00

我已经使用Dojo时间解析器来执行以下操作:

签出: http : //api.dojotoolkit.org/jsdoc/HEAD/dojo.date.locale.parse

我写的另一种选择:

DP_DateExtensions库

它具有日期/时间解析方法-传递掩码,它将验证输入并在匹配时返回数据对象。

还支持日期/时间格式,日期数学(加/减日期部分),日期比较,专业日期解析等。它是开源的。

不是最干净的,但是可以工作:

var strDate = '05/27 11:00pm';
var myDate = ConvertDate(strDate, '2009');

function ConvertDate(strWeirdDate, strYear)
{
    strWeirdDate = strWeirdDate.replace(/ /, '/' + strYear + ' ');
    return new Date(strWeirdDate);
}

可能还想先修剪字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM