2012-12-18 24 views
2

如何與設定的日期之後,從Zend_Date的運算得到的星期名,Zend框架Zend_Date的運算:: WEEKDAY

$date = new Zend_Date(); 
$date->set(strtotime($newDate)); 

當我使用return $date::WEEKDAY_NAME,它總是返回EE爲天名。

+0

該語法是假的,您應該會看到警告或通知。您可能希望查閱[關於常量的PHP手冊部分](http://php.net/language.constants) – Charles

回答

2

這裏顯而易見的紅色標記是雙冒號:它只用於靜態屬性和類常量,所以它不能成爲這個特定日期對象的實際「週日名稱」字符串的方式(或任何類型的任何實例數據)。雖然PHP允許您以這種方式使用$date變量,但是編寫正確的Zend_Date::WEEKDAY_NAME會使您更清楚地訪問中的數據,而不是您的對象

Zend_Date::WEEKDAY_NAME只是Zend_Date星期幾格式字符串的常量(即您看到的EE)。事實上,儘管有這個名字,但它實際上是2個星期的星期幾縮寫的常數。 Zend_Date::WEEKDAY是當天的完整名稱。

您可以使用這些常量作爲$date對象上方法的參數。 toString是用於返回日期的格式化字符串表示的方法:

$date = new Zend_Date(strtotime($newDate)); 
return $date->toString(Zend_Date::WEEKDAY); 
+0

'EE'是ISO格式以獲取縮寫週日名稱,以獲得真正的週日名稱添加以下內容代碼, Zend_Date :: setOptions(array('format_type'=>'php')); $ date = new Zend_Date(); $ date-> set(strtotime($ newDate)); return $ date-> toString('D'); 欲瞭解更多格式閱讀,http://framework.zend.com/manual/1.12/fr/zend.date.constants.html#zend.date.constants.phpformats –

+0

您指定'WEEKDAY_NAME',這就是我用在我的例子(這是一個非常令人誤解的常數)。 'Zend_Date :: WEEKDAY'將爲您提供全名,而不必翻轉PHP格式類型設置。 –