LINUX.ORG.RU

Дата и время в Javascript и MySQL


0

0

Доброго времени суток!

Пытаюсь использовать библиотеку Highcharts для рисования графиков зависимости неких величин от времени. Время хранится в таблице MySQL в формате datetime. Забираю данные так:

 
$sql = "SELECT * FROM `monitoringtable` ORDER BY `monitoringtable`.`index` DESC LIMIT 1 ";

$result=mysql_query($sql);

while ($row = mysql_fetch_assoc($result))
{
	$test1 =strtotime($row['dateOfMeasurement']);
	$test2 = $row['F0'];
	echo "[$test1, $test2]";
}

Проверки убраны для читаемости.

На стороне клиента имеется функция на js (jQuery):

 

function requestData() {
	$.ajax({
	  url: 'live-server-data.php', 
	  success: function(point) {
                var series = chart.series[0];
	        shift = series.data.length > 20;
		chart.series[0].addPoint(eval(point), true, shift);
		},
		cache: false,
		ifModified: true
		});
	}

Вроде бы все логично и в примере, приведенном на сайте, все работает. Но — у меня все даты получаются в 1970 году и отличаются секундами, хотя в реале интервал не менее получаса. Подозреваю, что я неправильно преобразовываю дату в php-скрипте. Посоветуйте, пожалуйста, как мне это дело победить.



Последнее исправление: decadent (всего исправлений: 1)

В яваскрипте таймстампы не в секундах :) Не помню, в чем, попробуйте поумножать на 10, 100, 1000

Bad_Habit
()
Ответ на: комментарий от KDE41user

На 1000.

Внезапно, да. Спасибо большое, заработало.

Вдогонку вопрос: а как наиболее кошерно решается вопрос с часовыми поясами? Допустим, в таблице хранится значение «2010-09-03 08:51:19». После указанных преобразований я получаю на графике время 04:51:19, то есть в GMT, если я правильно понимаю. Тем не менее, в php.ini прописан правильный часовой пояс.

decadent
() автор топика
Ответ на: комментарий от decadent

храни в таблице unixtimeв виде int. Или при выборке прямо в SQL: UNIX_TIMESTAMP(dateOfMeasurement). Потом можешь легко показать в нужном поясе

nu11 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.