以下代码的结果给出:Januar 9,2014
如何才能实现:9。Januar 2014
提前致谢。
<?php
global $months;
$months = array('Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December');
function convert_dates($text)
{
$date_regexp = '/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/';
preg_match_all($date_regexp, $text, $dates);
$dates = $dates[0];
$new_dates = $dates;
for($i=0;$i<count($new_dates);$i++) {
$new_dates[$i] = explode('-', $new_dates[$i]);
$new_dates[$i] = $GLOBALS['months'][abs($new_dates[$i][1])-1] . ' ' . abs($new_dates[$i][2]) . ', ' . $new_dates[$i][0];
}
$text = str_replace($dates, $new_dates, $text);
return $text;
}
?>
答案 0 :(得分:0)
如果您不想要英语,请使用strftime
格式化日期,并使用strtotime将Y-m-d格式转换为时间戳。
<?php
// this needs to happen before you call convert_dates
// If your system default is already correct you do not need to do this
setlocale(LC_ALL, 'da_DK.UTF-8');
function convert_dates($text)
{
$date_regexp = '/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/';
preg_match_all($date_regexp, $text, $dates);
$dates = $dates[0];
$new_dates = $dates;
for($i=0;$i<count($new_dates);$i++) {
$new_dates[$i] = strftime('%e. %B %Y', strtotime($new_dates[$i]));
}
$text = str_replace($dates, $new_dates, $text);
return $text;
}