Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2011, 18:05   #1
se0808
 
Аватар для se0808
 
Регистрация: 06.02.2010
Сообщений: 4
По умолчанию Проблема с выводом даты

Добрый день! Подскажите, пожалуйста, в чём ошибка, функция должна по timestamp'у возвращать дату на русском языке, но пропускает месяц.
PHP код:
<?php
// Настройка часового пояса
date_default_timezone_set ('UTC');

// Массив русских названий месяцев
$monthesArray = array ('января''февраля''марта''апреля''мая''июня',
'июля''августа''сентября''октября''ноября''декабря');

// Функция, которая должна выдавать "18 февраля 2011", возвращает "18  2011",
// переменная $timeArray ['mon'] при этом равна 2
function datestring ($timestamp) {
    
$timeArray getdate ($timestamp);
    return 
$timeArray ['mday'].' '.$monthesArray [$timeArray ['mon'] - 1]
.
' '.$timeArray ['year'];
};

// Вывод результата
echo datestring (time ());
?>
Я уже всё испробовал, как не меняй, не работает. Помогите, пожалуйста. Использовать dmdate, увы, не могу, поскольку в timestamp может быть не только текущее время. Спасибо.

Последний раз редактировалось se0808; 18.02.2011 в 18:17. Причина: упростил код
se0808 вне форума Ответить с цитированием
Старый 18.02.2011, 18:38   #2
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

Проблема проста: области видимости переменных.

Код:
function datestring($timestamp) 
{
	$timeArray = getdate ($timestamp);
	$monthesArray=array("января", "февраля", "марта", "апряля", "мая", "июня",
			"июля", "августа", "сентября", "октября", "ноября", "декабря");
    return $timeArray['mday'].' '.$monthesArray[$timeArray ['mon'] - 1].' '.$timeArray ['year'];
};			
echo datestring(time());
Никки вне форума Ответить с цитированием
Старый 18.02.2011, 18:59   #3
se0808
 
Аватар для se0808
 
Регистрация: 06.02.2010
Сообщений: 4
По умолчанию

Большое спасибо, Никки, я не знал, что она вообще есть в PHP.
se0808 вне форума Ответить с цитированием
Старый 19.02.2011, 16:57   #4
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

Есть три варианта решения: передавать массив месяцев функции как параметр, объявить его внутри функции или написать в функции global $monthesArra
Никки вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с выводом изображения Mira-girl Общие вопросы C/C++ 0 23.10.2010 22:32
Класс. Проблема с выводом. zhenya.ya Общие вопросы C/C++ 6 19.09.2010 16:26
Проблема с выводом данных в С++ justso Помощь студентам 3 19.05.2010 11:04
проблема с выводом результата Nyutka PHP 2 16.04.2009 11:58
Проблема с выводом строки kezman Общие вопросы C/C++ 1 30.08.2008 20:41