Laravel 的 Schema Builder 中的 timestamps() 和 timestampsTz() 方法有什么区别?我尝试搜索谷歌,但找不到任何帮助。
基本上 timestampsTz() 代表Timestamp with Timezone而 timestamps() 就像Timestamp without timezone
TimestampsTz()是特定时间点的表示。对这个时间的调整是由与您的系统相关的时区进行的。
正常timestamps()更像是正常时钟的表示。
看看这个例子:
如果您正在使用该timestamps()功能,您还将存储您的环境选择的时区。如果您使用的是timestampsTz(),则时区将不安全。
我想当timestamp without timezone您的所有数据都确定在同一区域时使用会是一个很好的做法,或者您在那里有另一个处理时间转换的层。
更新:
在数据库中,正常timestamps()看起来像
2004-10-19 10:23:54
Run Code Online (Sandbox Code Playgroud)
虽然timestampsTz()看起来像
2004-10-19 10:23:54+02
Run Code Online (Sandbox Code Playgroud)
更新 2:
这些函数在 Laravel 中可用于每种类型的数据库。但这仅适用于 PostgreSQL。查看文档:PostgreSQL Timestamp。在其他数据库中,时区信息自动包含在时间戳中。
在所有其他数据库中,这将具有相同的输出。
| 归档时间: |
|
| 查看次数: |
3109 次 |
| 最近记录: |