Ну, у меня странная проблема при преобразовании из временной метки unix в человеческое представление с использованием javascript
Вот метка времени
1301090400
Это мой javascript
var date = new Date(timestamp * 1000);
var year = date.getFullYear();
var month = date.getMonth();
var day = date.getDay();
var hour = date.getHours();
var minute = date.getMinutes();
var seconds = date.getSeconds();
Я ожидал результатов 2011 2, 25 22 00 00. Но сейчас 2011, 2, 6, 0, 0, 0 Чего я скучаю?
javascript
timestamp
Георгиевич
источник
источник
Ответы:
getDay()
возвращает день недели. Чтобы получить дату, используйтеdate.getDate()
.getMonth()
извлекает месяц, но месяц отсчитывается от нуля, поэтому использованиеgetMonth()+1
должно дать вам правильный месяц. Кажется, что значение времени здесь в порядке, хотя здесь час 23 (GMT + 1). Если вам нужны универсальные ценности, добавьтеUTC
к методам (напримерdate.getUTCFullYear()
,date.getUTCHours()
)var timestamp = 1301090400, date = new Date(timestamp * 1000), datevalues = [ date.getFullYear(), date.getMonth()+1, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), ]; alert(datevalues); //=> [2011, 3, 25, 23, 0, 0]
источник
minute = (minute < 10 ? "0" : "") + minute;
date.getUTCHours()
?var newDate = new Date(); newDate.setTime(unixtime*1000); dateString = newDate.toUTCString();
Где
unixtime
время, возвращаемое вашим sql db. Вот скрипка, если это поможет.Например, используя его для текущего времени:
document.write( new Date().toUTCString() );
источник
"unixtime is undefined"
это то, что я здесь получаюnew Date(1480966325 * 1000).toUTCString()
вот ответ kooilnc с дополненными 0
function getFormattedDate() { var date = new Date(); var month = date.getMonth() + 1; var day = date.getDate(); var hour = date.getHours(); var min = date.getMinutes(); var sec = date.getSeconds(); month = (month < 10 ? "0" : "") + month; day = (day < 10 ? "0" : "") + day; hour = (hour < 10 ? "0" : "") + hour; min = (min < 10 ? "0" : "") + min; sec = (sec < 10 ? "0" : "") + sec; var str = date.getFullYear() + "-" + month + "-" + day + "_" + hour + ":" + min + ":" + sec; /*alert(str);*/ return str; }
источник
Часы, минуты и секунды зависят от часового пояса вашей операционной системы. В GMT (UST) это 22:00:00, но в разных часовых поясах это может быть что угодно. Поэтому добавьте смещение часового пояса ко времени, чтобы создать дату по Гринвичу:
var d = new Date(); date = new Date(timestamp*1000 + d.getTimezoneOffset() * 60000)
источник
используйте,
Date.prototype.toLocaleTimeString()
как описано здесьобратите внимание на пример локали en-US в URL-адресе.
источник