我想将字符串日期转换为对象日期。
字符串日期:
jeu. 26 avril 2018 10:25
到此对象日期
{ ["date"]=> string(26) "2018-04-26 10:34:50.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(12) "Africa/Tunis" }
到目前为止我已经尝试过:
Carbon::createFromFormat("Y-m-d H:i:s", 'jeu. 26 avril 2018 10:25')
我有一个例外:
发现意外数据。发现意外数据。分离符号 找不到数据
答案 0 :(得分:3)
你必须改变格式:
Carbon::createFromFormat("D. d M Y H:i", 'jeu. 26 avril 2018 10:25')
注意:我假设jeu
是日期名称。
答案 1 :(得分:0)
您需要设置区域设置和正确的通配符才能读取正确的日期格式
使用区域设置时,您可以在此处找到占位符:http://php.net/manual/en/function.strftime.php
此代码应该可以使用
<?php
// use this only if you working on other locale want to restore OLD locale back
// ====================================
$oldLocale = setlocale(LC_ALL, 0);
var_dump(setlocale(LC_ALL, 'fr_FR'));
// ^ this must return 'fr_FR' then only we confirm locale is set
// if return FALSE then install 'fr_FR' locale for PHP on server
// ====================================
// day name will be having .(dot) at end according abbreviation
// lun., mar., mer., jeu., ven., sam., dim.
$timeChunks = strptime('jeu. 26 avril 2018 10:25', '%a %d %b %Y %H:%M');
// ====================================
// use this only if you working on other locale want to restore OLD locale
setlocale(LC_ALL, $oldLocale);
// ====================================
$date = Carbon::create(
($timeChunks['tm_year'] + 1900) , // year
($timeChunks['tm_mon'] + 1), // month
$timeChunks['tm_mday'], // day
$timeChunks['tm_hour'], // hour
$timeChunks['tm_min'], // min
$timeChunks['tm_sec'] // second
);
// tm_year starts from 1900 so we need to add it
// tm_mon is 0 to 11 so add 1
var_dump($date);
如果有任何疑问,请发表评论