Laravel中如何格式化时间戳?如何将自定义created_at属性格式化为带'at'的指定样式?
调整Laravel时间戳访问器实现目标格式
嘿,这个修改其实非常简单!你只需要调整Carbon的format()方法里的格式字符串,把'at'文本加进去就行——不过要注意,a和t本身是Carbon的格式占位符,直接写会被解析成别的内容,所以得做转义处理。
符合需求的修改后代码
public function getCreatedAtAttribute($value) { return Carbon::parse($value)->format('M j, Y \a\t g:i A'); }
格式字符串逐段说明
咱们拆解一下这个格式,确保完全匹配你的需求:
M:输出英文月份缩写(比如Oct、Jan)j:输出不带前导零的日期数字(比如9而不是09,完美匹配你例子里的格式)Y:输出四位完整年份(比如2021)\a\t:转义后原样输出文本at(反斜杠用来告诉Carbon不要把a和t当作格式符解析)g:输出不带前导零的12小时制小时(比如1而不是01)i:输出两位数字的分钟(比如23、05)A:输出大写的上午/下午标识(AM或PM)
另一种等价写法
如果你觉得转义反斜杠有点麻烦,也可以用单引号把at包裹起来,效果完全一样:
public function getCreatedAtAttribute($value) { return Carbon::parse($value)->format('M j, Y \'at\' g:i A'); }
这样修改后,你的created_at字段就会输出完全符合要求的Oct 9, 2021 at 1:23 PM格式啦!
内容的提问来源于stack exchange,提问作者Isaac Arcilla
相关产品推荐
相关产品推荐

