按 javascript 将带日期的字符串格式化为另一种格式

Format string with date by javascript to another format

我有这种格式的字符串:

var date = "2012-02-12";

我想要return这种格式的日期:

12.2.2012

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

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

但它的 returning 错误 undefined 不是函数。

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

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

所以看起来最短的路是这样的:

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

您不能为此使用本机 javascript 函数,这不是有点适得其反且令人沮丧吗?

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

'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 日,而第一种格式无疑是前者。