PHP中如何将Thu, Jun 9, 2022格式日期转换为Y-m-d格式
基于PHP的
Thu, Jun 9, 2022格式转Y-m-d实现方法 你通过simple_dom解析拿到的这类字符串是标准英文缩写格式日期,用PHP内置日期函数即可完成转换,无需手动写正则拆分字符串,以下是两种可直接落地的实现:
- 方案1:指定格式解析(兼容性最优,不受服务器语言配置影响,推荐使用)
// simple_dom抓取到的原始日期字符串 $raw_date = 'Thu, Jun 9, 2022'; // 匹配输入字符串的日期格式做定向解析 $parsed = date_parse_from_format('D, M j, Y', $raw_date); // 自动补前导零拼接为Y-m-d格式 $standard_date = sprintf('%04d-%02d-%02d', $parsed['year'], $parsed['month'], $parsed['day']); echo $standard_date; // 输出结果:2022-06-09
格式占位符说明:
D:缩写星期名(比如Thu)M:缩写月份名(比如Jun)j:无前导零的日期数字(比如9,对应补零后是09)Y:4位完整年份方案2:自动类型解析(写法简洁,适合服务器默认语言为英文的场景)
$raw_date = 'Thu, Jun 9, 2022'; // 自动识别英文日期转时间戳后格式化 $standard_date = date('Y-m-d', strtotime($raw_date)); echo $standard_date; // 输出结果:2022-06-09
避坑提示:如果服务器默认locale不是英文环境,
strtotime无法识别英文月份缩写会返回解析失败,这种场景必须用第一种指定格式的方案。如果需要做日期计算、入库操作,提前通过date_default_timezone_set设置业务对应时区,避免出现时间偏移问题。
内容的提问来源于stack exchange,提问作者Europeuser
相关产品推荐
相关产品推荐

