0

我写了一门关于以不同格式/语言翻译日期的课程。但问题是当我将日期函数包含在其中时,它似乎不起作用。你知道为什么吗 ?为了理解问题,我用必需品使我的代码更轻:

class Test {

    public function test($timestamp, $format='d/m/Y') {
        return date($format, $timestamp);
    }

}

好的,这是完整的课程...

class GetDateTime {

    private $_text_en_US = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "January", "February", "March", "April", "May","June", "July", "August", "September","October", "November", "December");

    private $_text_fr_FR = array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");

    public function getDateTime($format='d/m/Y', $timestamp, $locale='fr_FR') {
        switch ($format) {
            case 'd/m/Y':
            case 'm/d/Y':
                return date($format, $timestamp);
            break;  
            case 'l d F Y':
                return str_replace($_text_en_US, ${'_text_'.$locale}, date($format, $timestamp));
            break;  
        }
    }

}

...以及我如何称呼它:

include_once (BASE_DIR.'/lib/dateTime.class.php');
$dateTime = new GetDateTime();

事实是当我打电话时它没有被翻译:

echo $dateTime->getDateTime('l d F Y', date());
4

1 回答 1

2

您可能对为什么该方法没有返回您想要的结果感到困惑。

new Test(time())不返回格式化日期,因为方法test与类同名,因此,test方法成为该类的构造函数。您不能从构造函数返回值,因为当您创建对象时,会返回对该对象的引用。

将您的方法重命名test为不同的名称,初始化类,然后调用该新方法,例如:

$obj = new Test;
echo $obj->new_method(time() + 3600);
于 2013-11-13T14:51:54.263 回答