【发布时间】:2018-07-24 14:21:11
【问题描述】:
我有以下代码来获取 (Y-m-d H:i:s) 格式的日期值。我需要在检索时以 (Y-m-d) 格式获取值。是否可以在 pluck 方法中使用函数?
$dates = $this->collection->pluck('date');
【问题讨论】:
-
date属性是DateTime实例还是字符串?
我有以下代码来获取 (Y-m-d H:i:s) 格式的日期值。我需要在检索时以 (Y-m-d) 格式获取值。是否可以在 pluck 方法中使用函数?
$dates = $this->collection->pluck('date');
【问题讨论】:
date 属性是DateTime 实例还是字符串?
您可以检查 Date Mutators 和 Carbon 这是 Laravel 选择的格式化日期的方法。 你需要在你的模型中有这样的东西:
protected $dateFormat = 'd-m-Y';
然后,当您简单地遍历您的收藏并调用 {{ $dates }} 时,它会在视图中显示您的日期,格式为“d-m-Y”。
【讨论】:
Collection 上调用pluck 将返回Collection。 strtotime 需要一个字符串值,而不是 Collection。
您可以使用map() 代替pluck(),这样您就可以根据需要修改返回的值:
// If $model->date is a DateTime object
$dates = $this->collection->map(function ($model) {
return $model->date->format('Y-m-d');
});
// If $model->date is a string
$dates = $this->collection->map(function ($model) {
return date('Y-m-d', strtotime($model->date));
});
【讨论】: