使用moment.js在日期和时间之间添加空间

时间:2019-01-16 14:34:35

标签: vue.js momentjs

我有一个以ISO格式从数据库返回的日期时间。它们看起来像这样:2015-11-03T10:06:50.000Z。我正在使用moment.js对其进行解析,以使其更具可读性,并且结果如下所示:11-03-2015 10:06:50 AM。我只想在日期和时间之间添加另一个空格,以便于阅读。有什么想法吗?

我尝试在日期和时间之间添加另一个空格,看来它去除了除一个空格以外的所有空格。我也尝试过连字符和竖线,但这些看上去并不太像我想要的样子。

rows.forEach(row => {
    // TODO find a way to put more blank space between date and time
    let formattedDateTime = moment.utc(row.DateTime).format(`MM-DD-YYYY hh:mm:ss A`)
    row.DateTime = formattedDateTime
    // console.log('formatted datetime', formattedDateTime)
  })

预期:在moment.format中的日期和时间之间添加空格会在客户端上反映出这种方式。

实际:在日期和时间之间只能留一个空格。其他所有空格都将被删除。

3 个答案:

答案 0 :(得分:3)

这不是时刻或问题的问题,momentjs会在添加空格时添加空格(您可以通过调试var或使用控制台日志轻松检查),但是默认情况下,浏览器会将多个空格折叠成一个空格。看看white-space CSS属性以了解更多信息。

此外,您不应处理日期在JS中的显示方式,而应在CSS中处理。因此,在您的情况下,我的建议是在JS代码中将日期和时间分成2个变量,并调整HTML模板和CSS以正确显示它们。

通常在HTML代码(甚至在JS代码中添加多个空格)不是一个好方法,您应该使用CSS来实现。

答案 1 :(得分:1)

分配时尝试使用模板文字:

let d = moment.utc(row.DateTime)

row.DateTime = `${d.format('MM-DD-YYYY')}  ${d.format('hh:mm:ss A')}`

答案 2 :(得分:0)

有相同的要求,解决方案是使用\ xa0

moment(date).format('YYYY-MMM-DD \ xa0 \ xa0 \ xa0HH:mm');