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

PHP date()函数格式化:实现带序数词的多语言日期显示

PHP实现瑞典语日期序数词格式化方案

PHP原生date()函数的S格式符仅支持英语序数词(st/nd/rd/th),无法直接生成瑞典语的日期序数格式(如1:e/2:a或完整序数词första/andra),必须手动处理序数部分,结合本地化工具实现目标格式。

核心实现思路

  1. 启用瑞典语本地化,获取符合语言习惯的星期、月份全称
  2. 根据日期数字映射对应的瑞典语序数后缀/完整词
  3. 拼接成目标格式字符串

方案一:使用IntlDateFormatter(推荐,跨环境兼容性更好)

// 设置时区
date_default_timezone_set('Europe/Stockholm');

// 初始化国际化日期格式化器,指定瑞典语区域
$locale = 'sv_SE';
$dateTime = new DateTime();

// 获取瑞典语星期、月份全称
$weekday = IntlDateFormatter::formatObject($dateTime, 'EEEE', $locale);
$month = IntlDateFormatter::formatObject($dateTime, 'MMMM', $locale);

// 获取日期数字及其他时间组件
$day = (int)$dateTime->format('j');
$year = $dateTime->format('Y');
$time = $dateTime->format('H:i:s');

// 映射瑞典语序数后缀
$suffix = match($day) {
    1 => 'e',
    2 => 'a',
    default => 'e'
};

// 输出目标格式:Onsdagen den 4:e Maj 2023 kl 15:13:20
echo "$weekday den $day:$suffix $month $year kl $time";

方案二:简洁一行式(结合strftime)

date_default_timezone_set('Europe/Stockholm');
// 启用瑞典语本地化(需确保服务器已安装对应语言包)
setlocale(LC_TIME, 'sv_SE.utf8');

$day = (int)date('j');
// 映射序数后缀,默认使用e
$suffix = isset([1 => 'e', 2 => 'a'][$day]) ? [1 => 'e', 2 => 'a'][$day] : 'e';

// 输出目标格式
echo strftime("%A den $day:$suffix %B %Y kl %T");

扩展:使用完整序数词(如den första Maj)

如果需要显示完整的瑞典语序数词而非数字后缀,可扩展映射数组:

date_default_timezone_set('Europe/Stockholm');
$locale = 'sv_SE';
$dateTime = new DateTime();
$day = (int)$dateTime->format('j');

// 瑞典语日期完整序数词映射(可补充至31)
$ordinalMap = [
    1 => 'första',
    2 => 'andra',
    3 => 'tredje',
    4 => 'fjärde',
    5 => 'femte',
    6 => 'sjätte',
    7 => 'sjunde',
    8 => 'åttonde',
    9 => 'nionde',
    10 => 'tionde'
];

// 不存在映射时 fallback 到数字后缀格式
$ordinal = $ordinalMap[$day] ?? "$day:e";
$weekday = IntlDateFormatter::formatObject($dateTime, 'EEEE', $locale);
$month = IntlDateFormatter::formatObject($dateTime, 'MMMM', $locale);

echo "$weekday den $ordinal $month {$dateTime->format('Y')} kl {$dateTime->format('H:i:s')}";

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 20:07:04