gpt4 book ai didi

laravel - 在 Laravel 5.2 中使用 Carbon 将 mySQL 日期转换为英国时间格式?

转载 作者:行者123 更新时间:2023-12-02 21:02:56 24 4
gpt4 key购买 nike

我的日期时间选择器错误地将日期显示为 2026 年 5 月 20 日,因为它在 MySQL 中存储为 2016-05-26。目前我认为这是我应该做的:

$startDate = new Carbon ('d/m/Y H:i:s', $dateFromDB->startdate);

最佳答案

转换两次,为什么?

我对你的问题的一个问题是,你从数据库获取日期为Y-m-d,然后将其转换为d/m/Y H:i:s那么您的日期选择器将其显示为 jS F Y,您不能删除一次转换而不是转换两次吗?需要考虑的事情。

新建 Carbon 实例

如果您从数据库获取的日期为 Y-m-d,那么您可以直接将其传递到您正在新建的 Carbon 实例中:

$startDate = new Carbon($dateFromDB->startdate);

请参阅文档:http://carbon.nesbot.com/docs/#api-instantiation

然后您可以使用format()方法输出所需的日期格式:

$startDate->format('d/m/Y H:i:s'); // 26/05/2016 09:30:05

$startDate->format('jS F Y'); // 26th May 2016

Eloquent 中的日期修改器

如果您使用 eloquent 来获取要转换的日期,您可以考虑的另一种方法是将日期添加到模型中的 $dates 属性中,自动将日期转换为 Carbon 实例。

例如,如果模型中的日期为 start_date,您将执行以下操作:

class MyModel extends Model
{
protected $dates = ['start_date'];
}

然后您可以直接在代码中将其作为 Carbon 实例进行访问:

MyModel::first()->start_date->format('d/m/Y H:i:s');

请参阅文档:https://laravel.com/docs/5.2/eloquent-mutators#date-mutators

仅使用 PHP

您还可以使用像这样的普通旧 PHP 来获取您需要的日期格式:

$date = '2016-05-26 09:30:05';

$startDate = date('d/m/Y H:i:s', strtotime($date)); // 26/05/2016 09:30:05

$startDate = date('jS F Y', strtotime($date)); // 26th May 2016

关于laravel - 在 Laravel 5.2 中使用 Carbon 将 mySQL 日期转换为英国时间格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37409753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com