I have a strange issue with results returned by DateTime::format() or strftime(), that seems to be ignoring Yii::app()->language settings.
I have a dual-language (English and Polish) application written in Yii 1.x. No matter, what language is currently set in Yii::app()-language setting, results returned by PHP’s DateTime::format() or date() are always in English. For example DateTime::format('j F Y') should print month name in Polish, when current app’s language is set to pl (I use short notation, if that matters).
At first, I thought, that setting Yii::app()-language does not control date() or DateTime::format (is it?). But, then it turned out, that I’m unable to force PHP to write month name in Polish even after manually setting setlocale(LC_ALL, 'pl_PL');.
After some research, I found out, that DateTime::format() does not pay attention to locales and I should use strftime instead. However, either I’m doing something wrong does not work at all in my local, Windows-based environment.
For first test, I took following code:
setlocale(LC_TIME, "pl_PL");
echo '$startDate->getTimestamp() = '.$startDate->getTimestamp();
echo 'strftime("%a %e.%l.%Y", $startDate->getTimestamp()) = '.strftime("%a %e.%l.%Y", $startDate->getTimestamp());
And the results are as following:
6406
So, either I’m missing something or after feeding strftime with correct timestamp, it prints… nothing.
Then, I used [an example code from strftime's documentation. And, again, no matter, what language is selected by user, it always prints texts in English. Here is an example:
6407
What am I missing? I have absolutely no idea, why strftime does not work on my system at all (prints nothing or always English text) and why it is ignoring Yii::app()->language?
Can someone shed some light on this problem? How to fix it or what other method use to finally get dates printed with locale matching Yii::app()->language setting?

