我的datetimepicker错误地将日期显示为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
,是否可以只进行一次转换而不是两次转换呢?需要考虑的事情。
新增碳实例
如果您要从数据库获取日期,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
雄辩的日期变量
如果您使用雄辩的方法来获取要转换的日期,则可以考虑的另一种方法是通过将日期添加到Carbon实例中来自动将日期转换为Carbon实例$dates
。
例如,如果您的日期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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句