【发布时间】:2010-12-07 07:10:48
【问题描述】:
有谁知道如何以所需格式解析日期字符串dd.mm.yyyy?
【问题讨论】:
-
您想从该格式的字符串创建一个新的日期对象吗?
标签: javascript datetime-format datetime-parsing
有谁知道如何以所需格式解析日期字符串dd.mm.yyyy?
【问题讨论】:
标签: javascript datetime-format datetime-parsing
见:
代码:
var strDate = "03.09.1979";
var dateParts = strDate.split(".");
var date = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);
【讨论】:
"Note: parsing of date strings with the Date constructor (and Date.parse, they are equivalent) is strongly discouraged due to browser differences and inconsistencies."?
如果您使用的是 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));
【讨论】:
我们使用此代码检查字符串是否为有效日期
var dt = new Date(txtDate.value)
if (isNaN(dt))
【讨论】:
参考: 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");
【讨论】:
我在 IE 中使用过以下代码。 (兼容IE8)
var dString = "2013.2.4";
var myDate = new Date( dString.replace(/(\d+)\.(\d+)\.(\d+)/,"$2/$3/$1") );
alert( "my date:"+ myDate );
【讨论】:
ASP.NET 开发人员可以选择这个方便的内置(MS JS 必须包含在页面中):
var date = Date.parseLocale('20-Mar-2012', 'dd-MMM-yyyy');
http://msdn.microsoft.com/en-us/library/bb397521%28v=vs.100%29.aspx
【讨论】:
使用日期对象:
var time = Date.parse('02.02.1999');
document.writeln(time);
给:917902800000
【讨论】:
new Date(Date.parse('02.02.1999'))
new Date(Date.parse('02.02.1999')) for Javascript
new Date(Date.parse('02.02.1999')) 将产生与new Date('02.02.1999') 相同的结果,包括在某些浏览器中的无效日期。使用内置解析器可以说是解析时间戳的最糟糕的方式。
此函数还处理无效的 29.2.2001 日期。
function parseDate(str) {
var dateParts = str.split(".");
if (dateParts.length != 3)
return null;
var year = dateParts[2];
var month = dateParts[1];
var day = dateParts[0];
if (isNaN(day) || isNaN(month) || isNaN(year))
return null;
var result = new Date(year, (month - 1), day);
if (result == null)
return null;
if (result.getDate() != day)
return null;
if (result.getMonth() != (month - 1))
return null;
if (result.getFullYear() != year)
return null;
return result;
}
【讨论】:
你可以格式化日期只是制作这种类型的代码。在javascript中。
// for eg.
var inputdate=document.getElementById("getdate").value);
var datecomp= inputdate.split('.');
Var Date= new Date(datecomp[2], datecomp[1]-1, datecomp[0]);
//new date( Year,Month,Date)
【讨论】: