我从文档中提取日期。日期的格式各不相同,从美国到欧洲,从破折号到反斜杠。
$d1 = '03/12/2017';
$d2 = '12/03/2017';
$d3 = '26/03/2017';
Carbon::parse($d1)->toDateString(); // the month is read as March but it should be read as December
Carbon::parse($d2)->toDateString(); // the month is read as December but it should be March
Carbon::parse($d2)->toDateString(); // throws an ErrorException failing to parse the time due to incorrect format
问题是不知道日期是d / m / Y还是m / d / Y导致文件按错误的月份排序。
这些文件来自世界各地的不同企业,我无法控制日期格式。
这个问题有解决方法吗?
答案 0 :(得分:1)
您应该使用createFromFormat
请参阅http://carbon.nesbot.com/docs/#api-instantiation
Carbon::createFromFormat("d/m/Y",$datestring)
这样就可以定义字符串的解释方式,如果你知道输入字符串是什么。
Carbon扩展了php的DateTime课程,因此您也可以阅读https://secure.php.net/manual/en/datetime.createfromformat.php上的DateTime createFromFormat文档