希腊语的日期和时间

时间:2013-02-14 10:14:27

标签: php datetime localization

我目前正在使用一个网站在雅典度过时间:

$d = new DateTime("now", new DateTimeZone("Europe/Athens"));
echo $d->format("l, d M Y");

但我希望日期以希腊语和相同的格式显示。

6 个答案:

答案 0 :(得分:5)

完整答案:

date_default_timezone_set('Europe/Athens');

setlocale(LC_TIME, 'el_GR.UTF-8');
echo strftime('%A ');
$greekMonths = array('Ιανουαρίου','Φεβρουαρίου','Μαρτίου','Απριλίου','Μαΐου','Ιουνίου','Ιουλίου','Αυγούστου','Σεπτεμβρίου','Οκτωβρίου','Νοεμβρίου','Δεκεμβρίου');
$greekDate = date('j') . ' ' . $greekMonths[intval(date('m'))-1] . ' ' . date('Y');
echo $greekDate;

这将显示日期,如:

Πέμπτη 4 Φεβρουαρίου 2013

更新:要使上面的块工作,将PHP语言环境设置为希腊语非常重要。

这是另一种选择:

date_default_timezone_set('Europe/Athens');

setlocale(LC_TIME, 'el_GR.UTF-8');
$day = date("w");
$greekDays = array( "Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο" ); 
$greekMonths = array('Ιανουαρίου','Φεβρουαρίου','Μαρτίου','Απριλίου','Μαΐου','Ιουνίου','Ιουλίου','Αυγούστου','Σεπτεμβρίου','Οκτωβρίου','Νοεμβρίου','Δεκεμβρίου');

$greekDate = $greekDays[$day] . ' ' . date('j') . ' ' . $greekMonths[intval(date('m'))-1] . ' ' . date('Y');
echo $greekDate;

答案 1 :(得分:4)

我当时正在寻找相同的东西,但我没有找到完整的解决方案,因为我需要它。就我而言,我需要用希腊语Αναρτήθηκε Σάββατο 2 Μαΐου 2015写下文章的发布日期时间。

因此,使用costastg答案的一些代码,我设法将以下函数放在一起。

我相信还有其他解决方案:

function formatToGreekDate($date){
    //Expected date format yyyy-mm-dd hh:MM:ss
    $greekMonths = array('Ιανουαρίου','Φεβρουαρίου','Μαρτίου','Απριλίου','Μαΐου','Ιουνίου','Ιουλίου','Αυγούστου','Σεπτεμβρίου','Οκτωβρίου','Νοεμβρίου','Δεκεμβρίου');
    $greekdays = array('Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο','Κυριακή');

    $time = strtotime($date);
    $newformat = date('Y-m-d',$time);

    return $greekdays[date('N', strtotime($newformat))-1].' '. date('j', strtotime($newformat)).' '.$greekMonths[date('m', strtotime($newformat))-1]. ' '. date('Y', strtotime($newformat)); // . ' '. $date;
}

答案 2 :(得分:1)

您应该使用setlocale和strftime来举例说明:

setlocale(LC_TIME, 'el_GR.UTF-8');

// Your display formatting from https://www.php.net/manual/en/function.strftime.php
$field_date_format = '%A, %d %B, %Y'; 

// Will display= Greek: Πέμπτη, 14 Φεβρουάριος, 2013
echo "Greek: ".strftime($field_date_format, strtotime("14-02-2013"));

我知道“Φεβρουάριος”不是“Φεβρουάριου”,但是如果对您的需求并不重要,则可以使用它。

答案 3 :(得分:0)

您应该使用date

获得所需的一切
$greekMonths = [
    'Ianouarios', 'Fevrouarios', 'Martios', 'Aprilios', 'Maios',
    'Iounios', 'Ioulios', 'Avgoustos', 'Septemvrios', 'Oktovrios', 
    'Noemvrios', 'Dekemvrios'
];
$greekDate = date('d') . ' ' . $greekMonths[intval(date('m'))-1] . ' ' . date('Y');  
echo $greekDate;

使用setlocale的第二种方式:

setlocale(LC_CTYPE, 'greek');  
setlocale(LC_TIME, 'greek');

答案 4 :(得分:0)

适用于所有格式的简单方法

function date_greek($format,$time=null){
    if($time===null)$time=time();
    $date = date($format,$time);
    if(strpos($format,'F')!==false){
        $en_months = array('January','February','March','April','May','June','July','August','September','October','November','December');
        $el_months = array('Ιανουαρίου','Φεβρουαρίου','Μαρτίου','Απριλίου','Μαΐου','Ιουνίου','Ιουλίου','Αυγούστου','Σεπτεμβρίου','Οκτωβρίου','Νοεμβρίου','Δεκεμβρίου');
    }else{
        $en_months = array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
        $el_months = array('Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν','Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ');
    }

    $en_days = array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday');
    $el_days = array('Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο','Κυριακή');
    $en_days_s = array('Mon','Tue','Wed','Thu','Fri','Sat','Sun');
    $el_days_s = array('Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ','Κυρ');
    $en_ampm = array('AM','PM');
    $el_ampm = array('ΠΜ','ΜΜ');

    $date_el = str_replace($en_months,$el_months,$date);
    $date_el = str_replace($en_days,$el_days,$date_el);
    $date_el = str_replace($en_days_s,$el_days_s,$date_el);
    $date_el = str_replace($en_ampm,$el_ampm,$date_el);
    
    return $date_el;
}


echo date_greek('l, d M Y',strtotime('2021-04-25')); // Πέμπτη, 22 Απρ 2021
echo date_greek('l j F Y h:i:s A',strtotime('2021-04-25')); // Πέμπτη 22 Απριλίου 2021 12:00:00 ΠΜ

答案 5 :(得分:-1)

如果我是对的,你想在希腊语中显示l参数。您应该将PHP语言环境设置为希腊语。

使用setlocale()http://php.net/manual/en/function.setlocale.php

setlocale(LC_TIME, 'greek');