Мой клиент хранит время посещения страницы в MySQL как varchar. Он берет объект класса даты new date()
от JS, который не в формате
Пт 25 ноября 2016 12:09:34 GMT + 0530 (стандартное время Индии)
Я хочу рассчитать разницу во времени для 2 переменных, как показано выше. Он используется для целей аналитики, время, проведенное на странице, как.
Я уже попробовал это:
SELECT TIMESTAMPDIFF(SECOND, 'Fri Nov 25 2016 12:09:34 GMT+0530 (India Standard Time)',
'Fri Nov 25 2016 12:20:34 GMT+0530 (India Standard Time)')
Как мне это сделать?
Вы действительно должны использовать MySQL Дата тип. (Edit: только что увидел в комментарии, почему вы используете varchar, так что давайте пропустим это;))
В любом случае, вы можете попробовать привести ваши строки в даты, используя STR_TO_DATE () функция
SELECT TIMESTAMPDIFF(
SECOND,
STR_TO_DATE('Fri Nov 25 2016 12:09:34 GMT+0530 (India Standard Time)', '%a %b %d %Y %T'),
STR_TO_DATE('Fri Nov 25 2016 12:20:34 GMT+0530 (India Standard Time)', '%a %b %d %Y %T')
)
Попробуй это :
SELECT TIMEDIFF('Nov 25 2016 12:09:34','Fri Nov 25 2016 12:20:34') as diff;
$dat1 = "Fri Nov 26 2016 12:09:34 GMT+0530";
$dat2 = "Fri Nov 25 2016 12:20:34 GMT+0530";
$diff = abs(strtotime($dat2) - strtotime($dat1));
$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
printf("%d years, %d months, %d days\n", $years, $months, $days);