【发布时间】:2021-07-23 17:26:16
【问题描述】:
我从数据库中检索日期并可以选择对它们进行预处理(通过 Laravel 框架 (v5.2))。日期或时间可以采用任何特定格式,但对于此示例,假设为 Y-m-d。
我希望能够在视图中以 Carbon 实例的形式访问日期 - 这将使我能够灵活地格式化日期,但我喜欢或不对其进行任何操作并按原样打印(默认 toString 是与其原始字符串格式相同)。
问题是在顶级 Carbon toString 格式中维护默认的预期 toString 格式。
根据docs,可以使用::setToStringFormat()方法改变toString的默认格式。可以使用静态方法 Carbon::setToStringFormat() 设置它,但它也可以用作实例方法,例如($date = Carbon::now())->setToStringFormat('Y-m-d') - 尽管这似乎与静态方法的行为相同。
那么,是否可以为日期实例设置单独的__toString() 格式?
它将允许我执行以下操作:
public function getDateAttribute($value)
{
$date = Carbon::createFromFormat('Y-m-d', $value);
// $date->setToStringFormat('Y-m-d');
return $date; // prints in 'Y-m-d' format
}
在视图中,我会在日期上链接方法,或按原样打印。
【问题讨论】:
标签: php-carbon