6

我目前正在使用一个网站来获取雅典的时间:

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

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

4

6 回答 6

9

完整答案:

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;
于 2014-04-02T10:02:48.650 回答
7

我一直在寻找相同的东西,但我没有找到我需要的完整解决方案。就我而言,我需要用希腊语写文章的发布日期时间,例如Αναρτήθηκε Σάββατο 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;
}
于 2015-05-12T13:44:07.810 回答
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"));

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

于 2019-07-20T15:37:50.527 回答
0

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

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

setlocale(LC_TIME, 'greek');
于 2013-02-14T10:22:58.507 回答
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');
于 2013-02-14T10:31:34.400 回答
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 ΠΜ
于 2021-04-25T13:04:09.910 回答