You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现日期数字字符串转英文单词格式的技术问询

解决方案

要实现将03/01/2023这类日期格式转换为Zero Three/Zero One/Two Zero Two Three,核心是把日期中每一位数字映射为对应的英文单词,再按原结构拼接。具体实现步骤如下:

  1. 建立0-9数字到英文单词的映射表,确保每个数字都能对应到正确的单词。
  2. 将输入日期按/分割为月、日、年三个独立部分。
  3. 对每个部分的每一位数字,替换为对应的单词后用空格连接。
  4. 最后把处理后的月、日、年部分用/拼接,得到目标格式。

实现代码

function convertDateToWordFormat($date) {
    // 数字与英文单词的映射关系
    $numberWords = [
        '0' => 'Zero',
        '1' => 'One',
        '2' => 'Two',
        '3' => 'Three',
        '4' => 'Four',
        '5' => 'Five',
        '6' => 'Six',
        '7' => 'Seven',
        '8' => 'Eight',
        '9' => 'Nine'
    ];

    // 分割日期为月、日、年三个部分
    list($month, $day, $year) = explode('/', $date);

    // 复用处理逻辑:将单部分的每一位数字转为单词并拼接
    $processPart = function($part) use ($numberWords) {
        $wordList = [];
        foreach (str_split($part) as $char) {
            $wordList[] = $numberWords[$char];
        }
        return implode(' ', $wordList);
    };

    // 分别处理月、日、年
    $monthStr = $processPart($month);
    $dayStr = $processPart($day);
    $yearStr = $processPart($year);

    // 拼接成目标格式
    return "$monthStr/$dayStr/$yearStr";
}

// 测试示例
$input = '03/01/2023';
echo convertDateToWordFormat($input);
// 输出结果:Zero Three/Zero One/Two Zero Two Three

补充说明

  • 该函数兼容XX/XX/XXXX格式的日期输入,不管是两位的月/日还是四位的年,都能逐位转换。
  • 匿名函数$processPart的使用避免了重复代码,让逻辑更简洁。

内容的提问来源于stack exchange,提问作者Jithinjithuz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 22:35:26