【问题标题】:Format string with date by javascript to another format通过javascript将带有日期的字符串格式化为另一种格式
【发布时间】:2015-03-08 23:48:33
【问题描述】:

我有这种格式的字符串:

var date = "2012-02-12";

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

12.2.2012

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

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

但它的返回错误 undefined 不是函数。

【问题讨论】:

  • 这篇文章回答了你的问题。 stackoverflow.com/questions/3552461/…
  • 不,绝对不会。他们正在使用new Date() 函数创建日期,但我已经有了字符串,无法将其更改为日期类型变量。
  • 不使用日期格式库,您需要自己将这些片段作为字符串进行操作
  • ´format()´ 不是原生 Javascript 函数...您必须从库中制作或使用它

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


【解决方案1】:
var string = '2012-02-12';
var string = string.replace(/-/g, ".");

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

【讨论】:

  • 那么重新排序部分呢?删除前导零?
【解决方案2】:

你只需要重新格式化字符串,所以在支持 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 日,而第一种格式无疑是前者。

【讨论】:

    【解决方案3】:

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

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

    您不能为此使用本机 javascript 函数是不是有点令人沮丧和沮丧?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      相关资源
      最近更新 更多