Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.05.2013, 19:20
Новичок на форуме
Посмотреть профиль Найти все сообщения от demjack
 
Регистрация: 19.05.2013
Сообщений: 1

Вывод времени в нужном часовом поясе
Доброго времени суток! Имеется скрипт, выводящий на сайте последние сообщения из Твиттера. Но время отправки сообщения показывается (на сайте) по Гринвичу, а необходимо по Москве. Вот кусок кода. Подозреваю, что здесь надо что-то дописать. Но что именно, не могу сообразить.

function relativeTime(pastTime)
{	
	var origStamp = Date.parse(pastTime);
	var curDate = new Date();
	var currentStamp = curDate.getTime();

	
	var difference = parseInt((currentStamp - origStamp)/1000);

	if(difference < 0) return false;

	if(difference <= 5)		return "только что";
	if(difference <= 20)		return "сек";
	if(difference <= 60)		return "мин";
	if(difference < 3600)		return parseInt(difference/60)+" мин";
	if(difference <= 1.5*3600) 	return "час";
	if(difference < 23.5*3600)	return Math.round(difference/3600)+" час";
	if(difference < 1.5*24*3600)	return "день назад";
	
	var dateArr = pastTime.split(' ');
	dateArr[2] = russianMonth(dateArr[2]);
	return dateArr[1]+'.'+dateArr[2]+' | '+dateArr[4].replace(/\:\d+$/,'')+(dateArr[3]!=curDate.getFullYear()?' '+dateArr[3]:'');
}
Ответить с цитированием
  #2 (permalink)  
Старый 19.05.2013, 21:18
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

А пример pastTime можно? Казалось бы, если указать в этой строчке, что часовой пояс Гринвичский, то всё должно быть хорошо.

function relativeTime(pastTime)
{	
	var origStamp = Date.parse(pastTime);
	var curDate = new Date();
	var currentStamp = curDate.getTime();

	
	var difference = parseInt((currentStamp - origStamp)/1000);

	if(difference < 0) return false;

	if(difference <= 5)		return "только что";
	if(difference <= 20)		return "сек";
	if(difference <= 60)		return "мин";
	if(difference < 3600)		return parseInt(difference/60)+" мин";
	if(difference <= 1.5*3600) 	return "час";
	if(difference < 23.5*3600)	return Math.round(difference/3600)+" час";
	if(difference < 1.5*24*3600)	return "день назад";
	
	var dateArr = pastTime.split(' ');
	dateArr[2] = (dateArr[2]);
	return dateArr[1]+'.'+dateArr[2]+' | '+dateArr[4].replace(/\:\d+$/,'')+(dateArr[3]!=curDate.getFullYear()?' '+dateArr[3]:'');
}

alert( relativeTime('Wed May 19 10:12:58 +0000 2013') )
alert( relativeTime('Wed May 19 14:12:58 +0400 2013') )  // то же время в московском часовом поясе


P.S. Зачем Вы парсите pastTime split'ом? Постройте лучше из него объект Date и работайте с его методами:
var months = "январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь, декабрь".split(', ')

function relativeTime(pastTime) {
	var origDate = new Date(pastTime);
	var curDate = new Date();

	var difference = parseInt((curDate - origDate) / 1000);

	if (difference < 0) return false;

	if (difference <= 5) return "только что";
	if (difference <= 20) return "сек";
	if (difference <= 60) return "мин";
	if (difference < 3600) return parseInt(difference / 60) + " мин";
	if (difference <= 1.5 * 3600) return "час";
	if (difference < 23.5 * 3600) return Math.round(difference / 3600) + " час";
	if (difference < 1.5 * 24 * 3600) return "день назад";

	return origDate.getDate() + '.' + months[origDate.getMonth()] + ' | ' + origDate.getHours() + (origDate.getFullYear() != curDate.getFullYear() ? ' ' + origDate.getFullYear() : '');
}

alert( relativeTime('Wed May 19 10:12:58 +0000 2013') )
alert( relativeTime('Wed May 19 14:12:58 +0400 2012') )

Последний раз редактировалось B@rmaley.e><e, 19.05.2013 в 21:29.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод времени php + javascript TTongorovortoto Ваши сайты и скрипты 2 29.10.2011 00:11
Вывод элемента в нужном месте Newbie_ Общие вопросы Javascript 10 21.05.2010 21:34
Вывод текста по времени Madjahet Элементы интерфейса 15 14.04.2010 17:19
Отображение времени на сайте если человек находится в другом поясе. alex244_97 Я не знаю javascript 2 20.05.2009 19:42