我的英文日期格式,我想将其更改为荷兰语。
我的代码是:
$date_arr = explode('-', $eventPublishDate);
$datetime= mktime(0, 0, 0, $date_arr[1], $date_arr[2], $date_arr[0]);
$enterted_date = date("jS F Y",$datetime);
$newDate = date("jS F Y", strtotime($eventPublishDate));
我尝试了以下代码,但无法找到日期的后缀[th,nd ...]
if ( setlocale(LC_ALL, 'nld_nld' ) || setlocale( LC_ALL, 'nl_NL' ) ) {
$newDate = strftime("%d %B %Y", mktime(0, 0, 0, $date_arr[1], $date_arr[2], $date_arr[0]));
}
我需要输出:2014年第15届januari
请帮我解决问题。
答案 0 :(得分:7)
好的,如果这不起作用:
setlocale(LC_TIME, 'NL_nl');
setlocale(LC_ALL, 'nl_NL');
echo strftime('%a %e %B %Y',time());
尝试将英语输出传递给Erik Jan这个旧的但有用的功能。它将返回简单的替换...
/**
* @author http://netters.nl/nederlandse-datum-in-php
*/
function nlDate($datum){
/*
// AM of PM doen we niet aan
$parameters = str_replace("A", "", $parameters);
$parameters = str_replace("a", "", $parameters);
$datum = date($parameters);
*/
// Vervang de maand, klein
$datum = str_replace("january", "januari", $datum);
$datum = str_replace("february", "februari", $datum);
$datum = str_replace("march", "maart", $datum);
$datum = str_replace("april", "april", $datum);
$datum = str_replace("may", "mei", $datum);
$datum = str_replace("june", "juni", $datum);
$datum = str_replace("july", "juli", $datum);
$datum = str_replace("august", "augustus", $datum);
$datum = str_replace("september", "september", $datum);
$datum = str_replace("october", "oktober", $datum);
$datum = str_replace("november", "november", $datum);
$datum = str_replace("december", "december", $datum);
// Vervang de maand, hoofdletters
$datum = str_replace("January", "Januari", $datum);
$datum = str_replace("February", "Februari", $datum);
$datum = str_replace("March", "Maart", $datum);
$datum = str_replace("April", "April", $datum);
$datum = str_replace("May", "Mei", $datum);
$datum = str_replace("June", "Juni", $datum);
$datum = str_replace("July", "Juli", $datum);
$datum = str_replace("August", "Augustus", $datum);
$datum = str_replace("September", "September", $datum);
$datum = str_replace("October", "Oktober", $datum);
$datum = str_replace("November", "November", $datum);
$datum = str_replace("December", "December", $datum);
// Vervang de maand, kort
$datum = str_replace("Jan", "Jan", $datum);
$datum = str_replace("Feb", "Feb", $datum);
$datum = str_replace("Mar", "Maa", $datum);
$datum = str_replace("Apr", "Apr", $datum);
$datum = str_replace("May", "Mei", $datum);
$datum = str_replace("Jun", "Jun", $datum);
$datum = str_replace("Jul", "Jul", $datum);
$datum = str_replace("Aug", "Aug", $datum);
$datum = str_replace("Sep", "Sep", $datum);
$datum = str_replace("Oct", "Ok", $datum);
$datum = str_replace("Nov", "Nov", $datum);
$datum = str_replace("Dec", "Dec", $datum);
// Vervang de dag, klein
$datum = str_replace("monday", "maandag", $datum);
$datum = str_replace("tuesday", "dinsdag", $datum);
$datum = str_replace("wednesday", "woensdag", $datum);
$datum = str_replace("thursday", "donderdag", $datum);
$datum = str_replace("friday", "vrijdag", $datum);
$datum = str_replace("saturday", "zaterdag", $datum);
$datum = str_replace("sunday", "zondag", $datum);
// Vervang de dag, hoofdletters
$datum = str_replace("Monday", "Maandag", $datum);
$datum = str_replace("Tuesday", "Dinsdag", $datum);
$datum = str_replace("Wednesday", "Woensdag", $datum);
$datum = str_replace("Thursday", "Donderdag", $datum);
$datum = str_replace("Friday", "Vrijdag", $datum);
$datum = str_replace("Saturday", "Zaterdag", $datum);
$datum = str_replace("Sunday", "Zondag", $datum);
// Vervang de verkorting van de dag, hoofdletters
$datum = str_replace("Mon", "Maa", $datum);
$datum = str_replace("Tue", "Din", $datum);
$datum = str_replace("Wed", "Woe", $datum);
$datum = str_replace("Thu", "Don", $datum);
$datum = str_replace("Fri", "Vri", $datum);
$datum = str_replace("Sat", "Zat", $datum);
$datum = str_replace("Sun", "Zon", $datum);
return $datum;
}
答案 1 :(得分:6)
使用intl模块:
$fmt = new IntlDateFormatter(
'nl_NL',
IntlDateFormatter::GREGORIAN,
IntlDateFormatter::NONE
);
echo $fmt->format(mktime(null, null, null, 1, 15, 2014));
// output: 15 januari 2014
答案 2 :(得分:1)
创建新数组
$lang = array();
$lang['en'] = ['january','februari','march','april','may','june','july','august','september','october','november','december'];
$lang['nl'] = ['januari','februari','maart','april','mei','juni','juli','augustus','september','oktober','november','december'];
将其替换为荷兰语格式
ucfirst(str_replace($lang['en'], $lang['nl'], strtolower($datum)));
答案 3 :(得分:0)
尝试更改此行:
$enterted_date = date("jS F Y",strtotime($datetime));
希望这可以帮到你。
答案 4 :(得分:0)
您可以使用您的语言创建一个包含月份和日期的数组,并使用foreach循环替换值:
$arr = array('Maa', 'Din','Woe','Don', ...);
$date = date('D M Y');
然后:
foreach($arr as $k => $V){
$date = str_replace($k, $v, $date);
}
echo $date;
这是我案例的第二个解决方案(第一个是@gontrollez)。为我设置语言环境根本不起作用,这个带数组的解决方案在我看来并不优雅。