我无法在我的环境中正确地将字符串转换为日期。我的字符串是英文澳大利亚格式dd / mm / yyyy,但是当我转换为日期时,我认为它采用了不同的格式?
var dateString = "27/10/2015"
var testdate = new Date(dateString);
testdate现在的值为:
2017年3月10日星期五00:00:00 GMT + 1100(澳大利亚东部夏令时间)
任何人都可以帮忙!!!!
答案 0 :(得分:0)
请尝试使用javascript函数获取日,月和日年。
today = new Date();
dd = today.getDate();
mm = today.getMonth();
yyyy = today.getFullYear();
if (dd < 10) { dd = '0' + dd; }
if (mm < 10) { mm = '0' + mm; }
today = dd + '/' + mm + '/' + yyyy
这将返回格式化日期,例如&#34; 27/10 / 2015&#34;
答案 1 :(得分:0)
Date()不支持您使用日/月/年的格式,因此您得到错误的结果,您可以使用此字符串 m / d / y < / strong>或将日期字符串拆分为:
var tmp = "15/02/2016".split('/');//you get ["15","02","2016"]
var testdate = new Date(tmp[2],tmp[1]-1,tmp[0]);//months are zero based array ,so we subtract -1
console.log(testdate);//Mon Feb 15 2016 00:00:00 GMT+0200 (GTB Standard Time)
希望有所帮助,祝你好运。
答案 2 :(得分:0)
在创建日期对象之前,只需使用简单的正则表达式替换。这一天&amp;月份订购在JS中搞砸了。无法使用您自己的自定义格式来匹配任何日期字符串。
var testdate = new Date(dateString.replace(/(\d*)\/(\d*)(.*)/, "$2/$1$3"));
答案 3 :(得分:0)
解析日期字符串几乎完全取决于实现。 ECMAScript 2015中指定了对有限数量的ISO 8601格式的支持,但并非所有使用的浏览器都支持它们。
大多数浏览器都支持多种格式,包括m / d / y,但没有要求它们的规范,所以不应该期望它们会这样。
最好手动解析字符串。图书馆可以提供帮助,但很少需要。要以d / m / y格式解析日期作为本地日期(即考虑系统时区偏移的地方)并验证部件,请考虑:
/* Parse date string in d/m/y format as a local date
**
** @param {string} s - string to parse
** @returns {Date} - if any date value is out of bounds, returns a
** Date with time value of NaN (per ECMAScript 2015)
*/
function parseDMY(s) {
var b = s.split(/\D/);
var d = new Date(b[2], --b[1], b[0]);
return d && d.getMonth() == b[1]? d : new Date(NaN);
}
document.write(parseDMY('27/10/2015'));
答案 4 :(得分:0)
为了解决我的问题,我在我的og问题的评论中遵循了visibleman提供的链接。 我现在使用date.js库。我过去曾试过这个但是没有意识到文化信息设置: getting started with date.js
我现在使用2个单独的文件,并允许用户指定他们想要日期的格式。
谢谢大家的帮助。
答案 5 :(得分:-1)
//current format is dd/mm/yy
var dateString = "27/10/2015" ;
//change the format to mm/dd/yy
var dateString = "10/27/2015" ;
// then use
var testdate = new Date(dateString);