laravel - Laravel - 日期/时间查询的不同格式
问题描述
我正在学习 Laravel,并且在控制器上遇到了一些小问题 - 当我使用 DB 时,查询返回没有时区的日期时间,但如果我使用模型,则查询返回完整的日期时间。
public function test($switch)
{
//return "YYYY-MM-DDThh:mm:ss.000000Z"
if ($switch) return Position::select('id','created_at')->orderBy('id')->get();
// return "YYYY-MM-DD hh:mm:ss"
return DB::table('positions')->select('id','created_at')->orderBy('id')->get();
}
为什么?我需要在这两种情况下都想要“YYYY-MM-DDThh:mm:ss.000000Z”吗?感谢您的解决方案。
谢谢你的建议
解决方案
它们是相同的数据,可能只是不同的日期类别,您始终可以格式化您的日期。Laravel 使用了优秀的 Carbon 日期库,应该主要使用。
如果您尝试使用get_class()
Eloquent Position created_at 打印日期类,您可能得到了 Carbon 和 DB::table('positions') created_at,您可能得到了 DateTime,这就是值看起来不同的原因(但您仍然得到相同的日期)。
如果你想将你的 DateTime 转换为 Carbon,你可以这样做
$newDate = new \Carbon\Carbon($position->created_at)
推荐阅读
- rabbitmq - 在单台机器上运行两个 RabbitMQ 实例作为 Windows 服务
- scala - 为 Seq 提供 Get 实例
- sql - 生成每年重置的序列号
- c# - C# 实体框架调用 sp_spaceused
- python - PyTorch - 如何获得第一层相对于输入的梯度?
- jms - JMS 队列静态快照
- spring-boot - solace 使用弹簧靴创建多重连接
- c# - botframework 如何处理在 luis 中未被识别为意图的文本
- laravel - laravel刀片视图中的Vue.js组件冲突
- javascript - 如何使用 vue 在一个请求中发送 json 参数和 multipart/form-data 文件