我有这种格式的日期:dd.mm.yyyy
当我用它实例化一个JavaScript日期时,它给了我一个 NaN
在c#中我可以指定一个日期格式,说:这里你有我的字符串,它是这种格式,请做一个日期时间.
这在JavaScript中也可能吗?如果没有,有一个简单的方法吗?
我宁愿不使用子字符串表示日期,子字符串表示月份等,因为我的方法还必须能够使用德语,意大利语,英语等日期.
CMS*_*CMS 35
您需要创建一个函数来提取日期部分并将其与Date构造函数一起使用.
请注意,此构造函数将月份视为基于零的数字(0=Jan, 1=Feb, ..., 11=Dec).
例如:
function parseDate(input) {
var parts = input.match(/(\d+)/g);
// note parts[1]-1
return new Date(parts[2], parts[1]-1, parts[0]);
}
parseDate('31.05.2010');
// Mon May 31 2010 00:00:00
Run Code Online (Sandbox Code Playgroud)
编辑:为了处理变量格式,您可以执行以下操作:
function parseDate(input, format) {
format = format || 'yyyy-mm-dd'; // default format
var parts = input.match(/(\d+)/g),
i = 0, fmt = {};
// extract date-part indexes from the format
format.replace(/(yyyy|dd|mm)/g, function(part) { fmt[part] = i++; });
return new Date(parts[fmt['yyyy']], parts[fmt['mm']]-1, parts[fmt['dd']]);
}
parseDate('05.31.2010', 'mm.dd.yyyy');
parseDate('31.05.2010', 'dd.mm.yyyy');
parseDate('2010-05-31');
Run Code Online (Sandbox Code Playgroud)
上面的函数接受一个format参数,该参数应该包含yyyy mm和dd占位符,分隔符并不重要,因为RegExp只捕获数字.
您还可以看一看DateJS,这是一个让日期解析无痛的小型库......
And*_*y E 10
将字符串拆分为数组并将部分直接传递给Date对象很容易:
var str = "01.01.2010";
var dmy = str.split(".");
var d = new Date(dmy[2], dmy[1] - 1, dmy[0]);
Run Code Online (Sandbox Code Playgroud)
没有按照您希望的方式操纵日期的内置方法.
在jQuery的UI日期选择您想要的功能,我相信很多其他库也有类似的东西.
$.datepicker.parseDate('dd.mm.yy', '31.12.2007');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35359 次 |
| 最近记录: |