最终效果图:
var_dump(toDateChinese('2023-12-21'));
function toDateChinese($date)
{
$date_arr = explode('-', $date);
$arr = [];
foreach ($date_arr as $index => &$val) {
if (mb_strlen($val) == 4) {
$arr[] = preg_split('/(?<!^)(?!$)/u', $val);
} else {
if ($val > 10) {
$v[] = $val[0]>1 ? $val[0] : 0;
$v[] = 10;
$v[] = $val % 10;
$arr[] = $v;
unset($v);
} else {
$arr[][] = $val;
}
}
}
$cn = array("一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "零");
$num = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "0");
$str_time = '';
for ($i = 0; $i < count($arr); $i++) {
foreach ($arr[$i] as $index => $item) {
if($i > 0){ // 月、日
if($item > 0){
$str_time .= $cn[array_search($item, $num)];
}
}else{ // 年
$str_time .= $cn[array_search($item, $num)];
}
}
if ($i == 0) {
$str_time .= '年';
} elseif ($i == 1) {
$str_time .= '月';
} elseif ($i == 2) {
$str_time .= '日';
}
}
return $str_time;
}