将数据库日期格式化为 AM/PM 时间(vue)

Posted

技术标签:

【中文标题】将数据库日期格式化为 AM/PM 时间(vue)【英文标题】:Formatting database date to AM/PM time (vue) 【发布时间】:2019-01-18 03:24:32 【问题描述】:

我从我的数据库中以2018-08-08 15:38:48 格式接收日期,但我希望它改为显示3:38 pm

我只是不确定何时进行此更改,我可以在发布时进行更改吗?它们是发送给某人的消息的日期。

当前代码:

<div v-for="messages in userMessages">
   <div class="date">
        user.created_at 
   </div>
</div>

输出:

2018-08-08 15:38:48

如何在 vue 中转换日期? (当它在 v-for 中时?)

【问题讨论】:

This question 让您了解如何在 vue 中使用 javascript 格式化日期字符串。这不是您的用例,但您可以从这里开始。 【参考方案1】:

Vue 不提供日期格式。您将需要自己的过滤器来格式化日期。或者你使用如下的包:https://github.com/brockpetrie/vue-moment#readme

<span> someDate | moment("hh:mm a") </span>

【讨论】:

【参考方案2】:

Vue.js 本身不允许日期以不同的方式格式化。

我建议您使用更著名的库,例如 moment.js 来格式化您想要的日期。

例如:

import moment from 'moment'

Vue.filter('formatDate', function(value) 
  if (value) 
    return moment(String(value)).format('MM/DD/YYYY hh:mm')
  

【讨论】:

【参考方案3】:

https://momentjs.com/

你如何使用它?

你可以这样使用。

moment('2018-08-08 15:38:48').format('LTS'); // 03:38:48 PM

【讨论】:

【参考方案4】:

您的日期时间格式不是我们想要的 ISO 标准,但我们会接受它...在处理日期时,最好在收到日期后立即将其转换为日期对象。如果它们以 JSON 形式到达,您可以使用 reviver 函数作为 JSON.parse() 的第二个参数来执行此操作。这是一个 reviver 函数,它将为您完成这项工作......

然后,在你需要显示的地方,你可以用 toLocaleTimeString() 格式化你的时间

function nReviver(key, value) 
        var a;
        if (typeof value === "string") 
            a = /^\d4-\d2-\d2 \d2:\d2:\d2(?:\.\d*)?$/.exec(value);
            if (a) 
                return new Date(a[0]);
            
        
        return value;
    
    
    // do this when you receive your data from the server and all
    // dates, wherever they are in the JSON, will be converted to date objects
    var myObj = JSON.parse('"myDate":"2018-08-08 15:38:48"',nReviver)

    // ...then, when you want to display, format with toLocaleTimeString()
    console.log(
      myObj.myDate.toLocaleTimeString(,
        hour12:true,
        hour:'numeric',
        minute:'numeric'
      )
      .toLowerCase()
    )

【讨论】:

以上是关于将数据库日期格式化为 AM/PM 时间(vue)的主要内容,如果未能解决你的问题,请参考以下文章

需要将时间跨度 ADO.NET 数据列格式化为 AM/PM

如何将日期/时间从 24 小时格式转换为 12 小时 AM/PM? [复制]

日期时间的 AM/PM 转换

将字符串解析为日期时间,同时在熊猫中考虑 AM/PM

如何以 12 小时 AM/PM 格式显示 JavaScript 日期时间?

如何从 PHP 中的日期时间获取 AM/PM [重复]