在 JavaScript 中解析日期时间字符串

IT技术 javascript datetime-format datetime-parsing
2021-02-02 17:35:37

有谁知道如何解析所需格式的日期字符串dd.mm.yyyy

6个回答

看:

代码:

var strDate = "03.09.1979";
var dateParts = strDate.split(".");

var date = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);
其他人觉得关于 Date 对象本身的 Mozilla 参考文章说奇怪"Note: parsing of date strings with the Date constructor (and Date.parse, they are equivalent) is strongly discouraged due to browser differences and inconsistencies."吗?
2021-03-17 17:35:37
如果你有这样的约会时间:“2014-05-20T16:43:56.71-06:00” var partesFecha = seekud.CreatedDate.split("T")[0].split("-"); var createdDate = new Date(partesFecha[0], (partesFecha[1] - 1), partesFecha[2]); T 之前的第一个提取日期,之后拆分年、月和日。
2021-03-18 17:35:37
@user674887,您可以在解析后比较值。例如 dateParts[1]-1 == date.getMonth()
2021-03-23 17:35:37
无法相信您必须使用拆分才能在 javascript 中获取预期的日期格式
2021-03-28 17:35:37
嗯,但是如何检查 strDate 是否具有像“30.30.2000”这样的无效值?
2021-04-10 17:35:37

如果您使用的是 jQuery UI,则可以使用以下格式设置任何日期的格式:

<html>
    <body>
        Your date formated: <span id="date1"></span><br/>
    </body>
</html>

 

var myDate = '30.11.2011';
var parsedDate = $.datepicker.parseDate('dd.mm.yy', myDate);

$('#date1').text($.datepicker.formatDate('M d, yy', parsedDate));

http://jsfiddle.net/mescalito2345/ND2Qg/14/

+1 我不认为完全超出范围,JavaScript 和 JQuery 是常见的组合。
2021-03-11 17:35:37
答案不应依赖于 OP 中未标记或未提及的库。当一个 3 行函数可以完成同样的工作时,使用jQuery作为日期库是非常矫枉过正的。
2021-03-19 17:35:37

我们使用此代码来检查字符串是否为有效日期

var dt = new Date(txtDate.value)
if (isNaN(dt))
给定的格式与developer.mozilla.org/en/Core_JavaScript_1.5_Reference/...要求的格式不匹配(因此 Date 构造函数是不够的)
2021-03-29 17:35:37
这根本不测试有效日期,它只是测试 Date 构造函数是否可以根据输入生成有效日期。两者不是一回事。
2021-04-01 17:35:37

参考文献:http : //momentjs.com/docs/#/parsing/string/

如果你使用moment.js,你可以使用“字符串”+“格式”模式

moment(String, String);
moment(String, String, String);
moment(String, String, Boolean);
moment(String, String, String, Boolean);

前任:

moment("12-25-1995", "MM-DD-YYYY");
在大多数情况下,MomentJS 是一种矫枉过正,因为使用纯 JavaScript 只需要数百个字节,而 MomentJS 是 12.4kb gzipped。对开发人员来说很方便,但会降低网站速度。不值得。
2021-03-15 17:35:37

我在 IE 中使用了以下代码。(兼容IE8)

var dString = "2013.2.4";
var myDate = new Date( dString.replace(/(\d+)\.(\d+)\.(\d+)/,"$2/$3/$1") );
alert( "my date:"+ myDate );