使用 laravel 转换 vue js 中的日期格式

Posted

技术标签:

【中文标题】使用 laravel 转换 vue js 中的日期格式【英文标题】:Convert date format in vue js with laravel 【发布时间】:2019-07-26 17:09:51 【问题描述】:

我正在使用 verta 库将公历日期转换为 laravel 中的回历日期 https://github.com/hekmatinasser/verta

在简单模式下(.blade.php 文件)我使用这样的代码:

 Verta($category->created_at)->format('%d %B %Y') 
for converting created_at

但在 Vue js 中,我无法访问我拥有的这种格式

category.created_at

如何用这种方法转换 vue js 日期?

【问题讨论】:

如果你想重用你在 laravel 中所做的事情,你需要先解析日期,然后再将它们返回到前端。您可以在读取数据库条目时使用突变(laravel.com/docs/5.8/eloquent-mutators)自动执行此操作 ***.com/questions/46708110/… 【参考方案1】:

您可以在模型上使用 mutator 在返回日期之前对其进行解析。

public function getCreatedAtAttribute($value)

    return Verta($value)->format('%d %B %Y');

这应该在您的类别模型中定义

category.created_at

然后将包含已解析的日期

【讨论】:

是的,最好的方法是创建一个属性。不要忘记将它添加到附加数组中 as created_at 是一个实际的数据库字段,您不需要附加它(在这种特定情况下/问题中)【参考方案2】:

很简单,你可以通过moment.js按照三个步骤完成。

第 1 步:

npm install moment --save

第 2 步:

import moment from "moment";

第 3 步:

export default 
    data() 
        return 
            moment: moment
        
     

完成。

现在在下面做

  moment(category.created_at).format("DD-MM-YYYY") 

【讨论】:

【参考方案3】:

您可以使用vue-moment

npm install vue-moment

...并且需要这样的插件:

Vue.use(require('vue-moment'));

然后,在您的应用程序中,您可以执行以下操作:

 someDate | moment("dddd, MMMM Do YYYY") 

【讨论】:

【参考方案4】:

在 Laravel 端

1)
public function getCreatedAtAttribute($value)

    return $value->format('d-m-Y');


2)protected $casts = [
    'birthday'  => 'date:Y-m-d'
];

在 Vue .js 端制作过滤器

npm install moment

In  resources/js/app.js

import moment from 'moment';

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

在 Vue 组件方面

 category.created_at | formatDate 

【讨论】:

以上是关于使用 laravel 转换 vue js 中的日期格式的主要内容,如果未能解决你的问题,请参考以下文章

vue.js怎样将时间戳转化为日期格式

laravel 中的 Vue.js 错误

我想从 laravel 中的 vue.js 代码运行工匠命令

vue.js怎样将时间戳转化为日期格式

vue.js怎样将时间戳转化为日期格式

vue.js 2.0 在 laravel 5.3 中动态加载组件