Cóż, mam dziwny problem podczas konwersji z uniksowego znacznika czasu do reprezentacji człowieka za pomocą javascript
Oto sygnatura czasowa
1301090400
To jest mój 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();
Spodziewałem się, że wyniki to 2011 2, 25 22 00 00. Ale jest rok 2011, 2, 6, 0, 0, 0 Za czym tęsknię?
javascript
timestamp
Georgevich
źródło
źródło
Odpowiedzi:
getDay()
zwraca dzień tygodnia. Aby uzyskać datę, użyjdate.getDate()
.getMonth()
pobiera miesiąc, ale miesiąc jest liczony od zera, więc użyciegetMonth()+1
powinno dać ci właściwy miesiąc. Wydaje się, że wartość czasu jest tutaj w porządku, chociaż tutaj jest godzina 23 (GMT + 1). Jeśli chcesz uniwersalne wartości, dodaćUTC
do metod (npdate.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]
źródło
minute = (minute < 10 ? "0" : "") + minute;
date.getUTCHours()
?var newDate = new Date(); newDate.setTime(unixtime*1000); dateString = newDate.toUTCString();
Gdzie
unixtime
jest czas zwracany przez twoją bazę danych sql. Oto skrzypce, jeśli to pomaga.Na przykład, używając go w bieżącym czasie:
document.write( new Date().toUTCString() );
źródło
"unixtime is undefined"
to jest to, co tu dostajęnew Date(1480966325 * 1000).toUTCString()
tutaj jest odpowiedź kooilnc z wypełnionymi zerami
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; }
źródło
Godziny, minuty i sekundy zależą od strefy czasowej systemu operacyjnego. W GMT (UST) jest 22:00, ale w różnych strefach czasowych może to być wszystko. Dodaj więc przesunięcie strefy czasowej do czasu, aby utworzyć datę GMT:
var d = new Date(); date = new Date(timestamp*1000 + d.getTimezoneOffset() * 60000)
źródło
używać
Date.prototype.toLocaleTimeString()
zgodnie z dokumentacją tutajproszę zwrócić uwagę na przykład lokalizacji en-US w adresie URL.
źródło