0
A
回答
0
不要在数据库中存储带时区的日期。在UTC中的db存储(默认Laravel配置)中,当您的某些用户选择其他默认时区时,您将转换此基准日期。
用户模型应该包含字段“timezone”,例如:'Europe/London'或'Europe/Warsaw'或'Asia/Vladivostok'。你可以在camroncade/timezone package找到所有时区。接下来,当您在应用程序中显示日期时间时,您会将用户的时区附加到Carbon datetime对象并将其转换为适当的时间。
$value // your base UTC datetime
$value = new Carbon($value);
$value->setTimezone(Auth:user()->timezone);
print $value->format('Y-m-d H:i:s') // datetime in user's timezone
请记住,您可以通过在型号外径BaseModel覆盖默认asDateTime方法使用日期铸造自动转换过程。
protected function asDateTime($value)
{
if($value instanceof Carbon) {
return $value;
} elseif($value instanceof \DateTime) {
$value = $value->format('Y-m-d H:i:s');
}
$value = new Carbon($value);
if(Auth::user()) {
$value->setTimezone(Auth::user()->timezone);
}
return $value;
}
这个方法将每个你会要求在模型中定义日期时间字段中保护$日期财产发射时间(created_at,的updated_at是默认值)。
0
您可以使用datetime和时间戳。最好去datetime这是很好的检索数据类型。
0
总是尝试以毫秒为单位存储日期时间,以便您可以在特定的时区转换该日期时间。你可以使用varchar和string(在laravel中)来存储它。
相关问题
- 1. php变量数据类型
- 2. 数据类型* <变量名称>与数据类型* <变量名称>之间的区别
- 3. 浮点变量和双变量数据类型之间的区别
- 4. 改变分区表列数据类型
- 5. 变量函数中的变量数据类型参数
- 6. 可用作数据类型的变量。
- 7. ada中变量的数据类型
- 8. 引用变量的数据类型(Java)
- 9. 变量数据类型的用途
- 10. Python中的变量和数据类型
- 11. 参数类类型变量
- 12. 分配新的时候定义变量的数据类型?
- 13. DynamoDBMapper转换变量数据类型
- 14. Shopify:全球变量数据类型
- 15. 变量声明和数据类型
- 16. ActionScript - 非类型变量的默认数据类型?
- 17. 类型的“变量”,类型为“可变”
- 18. .NET泛型类实例 - 传递变量数据类型
- 19. 针对MYSQL数据类型检查PHP变量类型
- 20. 在POJO为神谕TIMESTAMP Java变量数据类型(6)类型
- 21. 变量类型参数
- 22. 的类型变量
- 23. 变量类型
- 24. 在Perl中查找标量变量的数据类型
- 25. 类型和变量的类
- 26. 如何更改子类上的变量数据类型
- 27. 类型不匹配时传递的整数结果为整数变量类型
- 28. C中缓冲区内的可变长度数据类型C
- 29. C#反射类型与可变数量的类型参数
- 30. 混合变量数据类型的数学
您好,我在$ value = new Carbon($ value)时出错了;错误说DateTime :: __构造():无法解析时间字符串(1474430400)在位置8(0):意外的字符@Adiasz –
即时通讯使用laravel 5.3 –
1474430400 - 是日期时间戳,所以你必须创建对象的方式$ value = Carbon :: createFromTimestamp(1474430400);如果您有多种格式的日期,那么您需要检查是否在创建碳对象之前。看看文档http://carbon.nesbot.com/docs/ – Adiasz