如何通过Carbon库获取用户所在国家的日期格式并输出自定义非ISO格式
获取Carbon中自定义单数字日期格式的方法
如果您明确想要输出d.m.Y格式(日、月为单数字,年为四位),直接使用Carbon的format()方法就能实现,不用依赖getIsoFormats()返回的预定义双位格式:
// 直接指定目标格式字符串 echo Carbon::now()->locale('tr_TR')->format('d.m.Y');
要是您的需求是基于当前locale的标准短日期格式(也就是L对应的格式),但把双位的日/月改成单位,可以先获取该locale的ISO格式模板,再对模板做替换处理:
$carbon = Carbon::now()->locale('tr_TR'); // 获取当前地区的预定义格式数组 $isoFormats = $carbon->getIsoFormats(); // 将L格式里的双位标识替换为单位,得到简化版的短日期格式 $customShortFormat = str_replace(['DD', 'MM'], ['d', 'm'], $isoFormats['L']); // 用自定义好的格式格式化日期 echo $carbon->format($customShortFormat);
这种方式的好处是能适配不同地区的日期顺序:比如如果切换到en_US地区,它的L格式是MM/DD/YYYY,替换后会自动变成m/d/Y,既符合当地的日期习惯,又实现了单数字的简化效果。
需要说明的是,Carbon的预定义ISO格式(比如L)是遵循各地区标准日期规范设计的,要是您需要非标准的简化格式,上面两种方法都能满足需求——前者适合固定格式的场景,后者适合随地区动态调整的场景。
内容的提问来源于stack exchange,提问作者user3176661
相关产品推荐
相关产品推荐

