Javascript问题将字符串转换为日期

时间:2016-02-15 05:22:52

标签: javascript date date-format

我无法在我的环境中正确地将字符串转换为日期。我的字符串是英文澳大利亚格式dd / mm / yyyy,但是当我转换为日期时,我认为它采用了不同的格式?

var dateString = "27/10/2015"
var testdate = new Date(dateString);

testdate现在的值为:

2017年3月10日星期五00:00:00 GMT + 1100(澳大利亚东部夏令时间)

任何人都可以帮忙!!!!

6 个答案:

答案 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);