尝试使用new date()解析日期.但总是得到错误的结果
Trying to parse date using new Date(). but keep getting wrong results
我试图解析一个日期字符串,我从php通过ajax调用(这是不相关的现在)使用新的日期()。
然而我总是得到错误的结果。
字符串是2013-05-09 20:56:17
当我做
var something = new Date("2013-05-09 20:56:17");
alert(something.getMonth());
一直提醒0
在我看来,由于某些原因,新的日期不能解析这个字符串。
是否有一种方法可以在JS中为new date()指定日期格式?
我目前的解决方案是导入php的:date()
和strtotime()
并使用它们:
alert(date('m', strtotime("2013-05-09 20:56:17")));
这工作,但我必须使用外部js库,我很确定有一个更好的js方法来实现这一点。
如果你使用斜杠而不是连字符,它可以工作:
var something = new Date("2013/05/09 20:56:17");
alert(something.getMonth());
如果你需要(比如,如果你从其他地方获得日期字符串),可以很容易地先用斜杠替换字符串中的连字符:
var something = new Date("2013-05-09 20:56:17");
something = something.replace('-', '/');
似乎JavaScript的Date
构造函数不识别带有连字符的日期格式,或者至少不识别特定的格式。
在PHP中为ajax日期选择不同的格式说明符。您期望的格式和javascript期望的格式是不同的。
var something = new Date("2013-05-09T20:56:17");
请注意'T'作为文字分隔符出现,并标记ISO 8601
的时间开始。各种[browser] javascript日期格式参考
- W3 DateTime
- Microsoft IE日期时间
- Mozilla [Firefox] DateTime
- 谷歌DateJs
- PHP日期PHP DateTime
注意'DATE_ISO8601';但我建议现在不要用这个。相反,使用'DATE_ATOM'可能会产生更广泛支持的日期格式(评论表明它使iphone更快乐,并且与其他浏览器没有问题)。
在PHP中使用
$something = new DateTime('NOW');
echo $something->format('c');
echo $something->format(DateTime::ATOM);
相关文章:
- 如何知道javascript for语句中的所有结果是否都是错误的
- JScript 错误: 无法分配给函数结果
- json-api和错误结果:无法读取属性'长度'的未定义
- 显示错误结果的Javascript
- javascript使用正则表达式得到错误的结果
- 在页面对象文件中验证sendKeys结果会导致未定义的错误(Protractor)
- 原型中漂亮的代码,如何省略'不是函数'空结果选择器上的错误
- 在JavaScript中解析日期时得到错误的结果
- YouTube API v3哈希标签搜索错误结果
- jQuery.Validate - 如何将错误结果放在不同的地方
- JavaScript 数学给出了完全错误的结果
- web programming_javascript:javascript中的Grade结果错误
- 用javascript解析json并显示结果错误
- nodejs, http请求,解析结果错误
- ionic FileTransfer不给出结果/错误/反馈,然后做成功函数
- 在Javascript页面中搜索-一个结果错误
- TypeError: Object没有方法'split'分割结果错误[0].geometry.locat
- OpenLayers EPSG900913- EPSG4326转换结果错误
- Extendscript Javascript计算结果错误
- 按子字符串过滤的结果错误