如何正确地将字符串“ 3/6/2019 3:40:19 PM”转换为Laravel /雄辩的日期时间类型?

时间:2019-03-15 13:51:52

标签: php datetime laravel-5

我有一个字符串“ 3/6/2019 3:40:19 PM”,我想将其转换为Laravel / Eloquent日期时间类型。

有没有一种方法可以在不检索字符串的所有小片段并重新构建为所需格式的情况下?

3 个答案:

答案 0 :(得分:4)

您可以使用Carbon,它已经是任何Laravel安装的一部分。

http://carbon.nesbot.com/docs/#api-getters

如果您有日期时间字符串,并且想与Carbon实例一起使用,则可以执行以下操作:

$date = \Carbon\Carbon::createFromFormat('j/n/Y g:i:s A', '3/6/2019 3:40:19 PM');

然后您可以执行以下操作:

$date->format('Y-m-d')
$date->format('H:i:s')

答案 1 :(得分:3)

单行解决方案:

date('Y-m-d H:i:s', strtotime('3/6/2019 3:40:19 PM')));

如果您想使用Laravel的Carbon,可以看看api docs: 我发现了一个与您的情况类似的示例,该示例也解析了“ pm”

$date = Carbon::createFromIsoFormat('!YYYY-MMMM-D h:mm:ss a', '2019-January-3 6:33:24 pm', 'UTC');
echo $date->isoFormat('M/D/YY HH:mm'); // 1/3/19 18:33

答案 2 :(得分:1)

使用PHP strtotime()函数。
strToTime($string)

如果要更改格式,可以使用date()函数。
date('Y-m-d H:i:s', strtotime($string))

这省去了安装新库的麻烦,并且您可以在日期函数中以所需的任何方式更改日期格式