0

我正在为 jQuery UI datepicker 使用自定义插件 - Timepicker

我有两个字段,fromto输入字段,需要检查to 是否“大于” from。我有我的自定义 onClose 函数(onClose: function(dateText, inst) {}),但第一个参数是输入值 - 日期字符串。但是我的日期字符串不是“有效”的 JS 日期时间格式,所以我无法获取 Date 对象实例并进行比较。

它是dd.mm.yyyy hh:mm,例如 06.08.2012 12:00

我想知道是否有任何方法可以指定输入字符串格式,例如:

var date = new Date('dd.mm.yyyy hh:mm', dateText);

如果不是,我会让你以某种方式解析它......

提前感谢您的帮助。

4

1 回答 1

1

JavaScript 中没有内置这样的实用程序。如果我是你,我会将日期格式与正则表达式匹配,并使用接受日期部分的 Date 构造函数的形式

function parseDate(str) {
  var m = str.match(/^(\d\d)\.(\d\d)\.(\d{4}) (\d\d):(\d\d)$/);
  return (m) ? new Date(m[3], m[2]-1, m[1], m[4], m[5]) : null;
}

请注意,月份部分是从零开始的(而不是从一开始,所以一月 = 0,因此是 minux 一)。另外,请注意,Number构造函数用于将字符串转换为数字,因此您不必担心可能以零为前缀的数字被解释为八进制,就像parseInt(...).

于 2012-08-06T15:27:53.427 回答