Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从字符串构造javascript日期对象_Javascript - Fatal编程技术网

如何从字符串构造javascript日期对象

如何从字符串构造javascript日期对象,javascript,Javascript,我有字符串格式的日期值“06/12/2012”。如何构造Javascript日期对象,以便在比较之前/之后执行?我认为这可以帮助您 var d = new Date("06/12/2012"); 有一个getDateFromFormat()函数,您可以稍加调整以解决问题。将字符串转换为日期对象的唯一可靠方法是解析它。你必须事先知道格式。字符串“06/12/2012”不符合任何正式标准,但最有可能是日/月/年,因此: var date = new Date("06/12/2012"),

我有字符串格式的日期值“06/12/2012”。如何构造Javascript日期对象,以便在比较之前/之后执行?

我认为这可以帮助您

var d = new Date("06/12/2012");

有一个
getDateFromFormat()
函数,您可以稍加调整以解决问题。

将字符串转换为日期对象的唯一可靠方法是解析它。你必须事先知道格式。字符串“06/12/2012”不符合任何正式标准,但最有可能是日/月/年,因此:

var date = new Date("06/12/2012"),
    other = new Date("03/12/2012");

(date - other > 0? alert("after") : alert("before");
// Convert string in d/m/y format to a Date object
function toDate(s) {
  var bits = s.split('/');
  return new Date(bits[2],--bits[1],bits[0]);
}
请注意,任何日期解析函数都必须被告知格式和(通常)分隔符,因为猜测格式极易出错


不要将字符串传递给任何浏览器日期对象,并依赖主机正确解释它,浏览器可能识别的唯一格式是ISO8601格式,甚至很多人都会弄错。

我建议使用
DateJs
momentjs
在Javascript中进行日期处理。原始的
Date
constructor应该被禁止,因为它太难使用了。你认为“06/12/2012”代表什么日期?12月6日还是6月12日?为什么浏览器应该知道哪一个?然而,聪明的比较日期,因为如果假设d/m/y,结果将与假设m/d/y相反。:-)请注意,它完全依赖于实现,并且被指定为只接受一个参数。除了马特·克鲁斯的网站外,它应该是-1。是什么让你认为OP是m/d/y?世界上绝大多数人更倾向于使用d/m/y。再说一次,不要试图确定字符串的格式,你只希望浏览器猜测格式。