JavaScript Date 对象不适用于传递给它的字符串
JavaScript Date object not working with string passed to it
我正在尝试使用从数据库获得的变量来创建日期对象。字符串的格式已经正确,已经用逗号分隔"yyyy,mm,dd,hh,mm,ss"。但是,尝试创建 Date 对象会返回"无效日期"错误。
var foo ='2012,03,09,12,00,00,00';
document.write(foo); //<-- obviously writes the string 2012,03,09,12,00,00,00 to the browser
var then=(new Date(foo));
document.write(then); //<-- returns Invalid Date
我有一个解决方案如下:
var x = foo.split(/[,]/);
var then = new Date(x[0], x[1], x[2], x[3], x[4], x[5]);
想知道为什么在本质上重新创建传递给它的相同字符串时需要它。
这是因为您尝试转换为 Date 对象的字符串无效。Date 对象不仅接受任何格式作为字符串。如果不被识别,它将不起作用。
请参阅日期文档 https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date
以下是有关支持的格式的信息
https://www.rfc-editor.org/rfc/rfc2822#page-14
"yyyy,mm,dd,hh,mm,ss"
不是日期字符串的"正确格式"。
JavaScript Date
对象只能解析特定格式。 检查 MDN 文档以获取有效dateString
Date
。 https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date
无论如何,您的第二个示例有效,因为您没有重新创建字符串,与一个长参数相比,您传递了 6 个不同的参数。
您不能将逗号分隔的字符串传递给函数并期望它将其分解为参数,它不是那样工作的。
相关文章:
- 新Date()javascript的日期字符串
- JS:如何将字符串(“2015年3月10日”)转换为Date对象
- 确定字符串是Date还是Number
- Javascript Date对象到日期字符串
- 如何从字符串构造一个 javascript Date 对象
- 将字符串转换为 JavaScript 的 Date 对象的方法
- Date() 将某些日期字符串转换为本地时间
- 需要 Date.parse 以外的方法来解析日期字符串
- JavaScript Date 对象不适用于传递给它的字符串
- Date.parse 适用于字符串,但不适用于同一字符串的变量
- pickadate.js-3.5.3 将字符串日期转换为 mysql DATE 的正确格式
- 按数字和字符串设置新的 Date() 会给出不同的结果
- Javascript Date 字符串构造错误的日期
- 验证输入字符串并将其转换为新的 Date 对象
- 在 javascript 中将字符串解析为 Date
- IE 10+无法解析使用自己的date.prototype.toLocaleString生成的日期字符串
- 如何解析具有Date属性的JSON字符串
- 为什么将字符串附加到Date会调用toString()而不是valueOf()
- 如何使用从new Date()之后的字符串转换而来的函数
- Javascript new Date(字符串)返回一天后