使用javascript将日期格式化为另一种格式

时间:2015-03-08 23:48:33

标签: javascript date format string-formatting date-formatting

我有这种格式的字符串:

var date = "2012-02-12";

我想以这种格式返回日期:

12.2.2012

最简单的方法是什么? 我在尝试

var date = new Date( "2012-02-12" ).format("dd.m.yy");

但其未定义的返回错误不是函数。

3 个答案:

答案 0 :(得分:1)

var string = '2012-02-12';
var string = string.replace(/-/g, ".");

这会将2012-02-12转换为2012.02.12

答案 1 :(得分:1)

您只需重新格式化字符串,因此在支持ES5 Array方法的浏览器中:

'2012-02-12'.split('-').reverse().map(function(v){return Number(v)}).join('.') // 12.2.2012

但是,您可能需要一种效率更高的功能,即使在非常旧的环境中也能运行:

function reformatDate(s) {
  var b = s.split('-');
  return b[2] + '.' + Number(b[1]) + '.' + Number(b[0]);
}

console.log(reformatDate('2012-02-12')); // 12.2.2012

如果您不关心将'02'转换为'2',那么:

'2012-02-12'.split('-').reverse().join('.'); // 12.02.2012

将完成这项工作。但是,大多数人将这种格式理解为2月12日,但有些格式将于12月2日理解,而第一种格式明确无误地为前者。

答案 2 :(得分:0)

所以看起来最简单的方法就是:

var protocolDate = protocolDate.substr(8,2)+"."+
                   protocolDate.substr(5,2)+"."+
                   protocolDate.substr(0,4);

对于那些不能使用原生javascript功能的人而言,这有点令人沮丧和令人沮丧吗?