【问题标题】:Stackoverflow style date formatStackoverflow 风格的日期格式
【发布时间】:2016-01-10 13:46:23
【问题描述】:

如何按照 stackoverflow 的方式格式化 javascript Date 对象。

例如。 Aug 23 '10 at 23:35

这是我尝试过的。

new Date(val.replace(' ','T')+'Z').toString().split('GMT')[0]

这适用于跨浏览器。但是看起来不太整齐。

【问题讨论】:

  • 你试过什么?你考虑过什么?你哪里有问题?
  • 我尝试了一些javascript。我发布了这个问题。因为这对我来说是一个复杂的问题。不想使用时刻。
  • 你们现在可以删除不赞成票了吗 :)

标签: javascript date format


【解决方案1】:
function formatDate(date) {
    var monthNames = [
      "Jan", "Feb", "Mar",
      "Apr", "May", "Jun", "Jul",
      "Aug", "Sep", "Oct",
      "Nov", "Dec"
    ];

    var day = date.getDate();
    var monthIndex = date.getMonth();
    var month = monthNames[monthIndex];
    var year = date.getFullYear().toString().substring(2,3); 
    var hours = date.getHours();
    var minutes = date.getMinutes();


    return month+' '+day+" '"+year+' at '+hours+':'+minutes;
}

【讨论】:

  • date.getFullYear(...).subString 不是函数
  • 错字,是substring(),应该是getFullYear().toString().substring(2,3);
【解决方案2】:

试试这个:

var date = new Date();
var formattedDate = 
   (date.toLocaleString("en-us", { month: "long" })) + " " + 
   date.getDate() + " '" + (date.getFullYear() % 100);
var formattedTime = date.getHours() + ':' + date.getMinutes();
alert( formattedDate + " at " + formattedTime );

这是JSFiddle。

【讨论】:

  • 这只适用于支持ECMAScript Internationalization API的用户代理,这意味着(至少)不是Safari。使用纯 javascript 创建适当格式的日期字符串非常简单且更加健壮。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-10
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 2010-11-03
  • 2017-12-17
  • 1970-01-01
相关资源
最近更新 更多