Jak mogę obliczyć wczoraj jako datę w kodzie JavaScript?Oblicz datę wczoraj w JavaScript
Odpowiedz
var date = new Date();
date ; //# => Fri Apr 01 2011 11:14:50 GMT+0200 (CEST)
date.setDate(date.getDate() - 1);
date ; //# => Thu Mar 31 2011 11:14:50 GMT+0200 (CEST)
Spróbuj
var d = new Date();
d.setDate(d.getDate() - 1);
Następne polecenie: d.setHours (19,59); Aby ustawić czas na 19:59 –
//Create a date object using the current time
var now = new Date();
//Subtract one day from it
now.setDate(now.getDate()-1);
Nie bardzo wydajny, ale jak oneliner:
var yesterday = new Date(new Date().setDate(new Date().getDate()-1));
Powyższy tworzy trzy Date
obiektów, które jest niepotrzebnie marnotrawstwem. To może być zmniejszona do jednej instancji z:
var yesterday = (function(){this.setDate(this.getDate()-1); return this})
.call(new Date)
Lub, jeśli wolisz:
var yesterday = (function(d){ d.setDate(d.getDate()-1); return d})(new Date)
Lub, jeśli wolisz ES6 z funkcją strzałką:
let yesterday = (d => new Date(d.setDate(d.getDate()-1)))(new Date);
wolałbym uniknąć brudząc z zakresu: 'var wczoraj = (function (d) {d.setDate (d.getDate() - 1); return d}) (nowa data)' –
Jeśli potrzebujesz jednego -liner, użyj czegoś takiego jak nowy Date (Date.now() - 24 * 60 * 60 * 1000); ma to tę zaletę, że tworzy tylko jeden obiekt Date. Ale szczerze mówiąc, ktokolwiek zachowa ten kod, będzie * bardziej * szczęśliwszy, widząc przejrzystą wersję 2-liniową, niż gdyby coś wyrzucało funkcje dookoła (lub milisekundy, o to chodzi). –
To będzie produkować wczoraj o 00:00 z precyzją minutową
var d = new Date();
d.setDate(d.getDate() - 1);
d.setTime(d.getTime()-d.getHours()*3600*1000-d.getMinutes()*60*1000);
d.setHours(0,0,0,0);
rade
Czy to? Myślałem, że to po prostu ustaw twoje godziny, minuty i sekundy na 0, ale tak naprawdę nie zmienia daty? –
uogólnić pytanie i zrobić inne obliczenia diff użyć:
var yesterday = new Date((new Date()).valueOf() - 1000*60*60*24);
ten tworzy nowy obiekt Date w oparciu o wartości „teraz” jako liczbę całkowitą, która reprezentuje Epoka uniksowa w milisekundach, odejmując jeden dzień.
dwa dni temu:
var twoDaysAgo = new Date((new Date()).valueOf() - 1000*60*60*24*2);
godzinę temu:
var oneHourAgo = new Date((new Date()).valueOf() - 1000*60*60);
To wydaje się być najbezpieczniejszą metodą, ponieważ działamy w epoce unixowej wyrażonej w milisekundach. A więc arytmetyka jest bezpieczniejsza niż zrobienie czegoś takiego jak getDate() - 1. Nie próbowałem getDate() - 1, ale na podstawie dokumentacji getDate(), zwróci 1, jeśli dzisiejsza data jest pierwsza w dowolnym miesiącu. I 1-1 = 0 nie jest prawidłową datą. Nie wiem, jak zadziała funkcja setDate (0). –
To było moje podejście, chociaż możesz je nieco uprościć - spróbuj czegoś nowego, jak Date (Date.now() - 24 * 60 * 60 * 1000); –
setDate (0), przy okazji, byłby w porządku - przerzucałby się do ostatniego dnia poprzedniego miesiąca. Wydaje mi się jednak, że jest to bardziej przejrzyste (i bardziej intuicyjne), że w tym miejscu upuszczam tutaj milisekundową reprezentację - jedyną wadą jest to, że "liczba milisów w ciągu dnia" nie jest tak oczywista, więc można łatwo pomylić te obliczenia. –
Niespodziewanie sensu odpowiedź na najprostsze rozwiązanie przekroju przeglądarki
Aby znaleźć dokładnie ten sam czas wczoraj:
var yesterday = new Date(Date.now() - 86400000); // that is: 24 * 60 * 60 * 1000
To znaczy, jeśli chcesz iść zależność wolne, inaczej bym zalecamy stosowanie http://momentjs.com
Jak to działa, gdy zmienia się zmiana czasu? Czy to nie zaszkodzi przed/za godziną? –
spróbuj tego, działa na mnie:
var today = new Date();
var yesterday = new Date(today.setDate(today.getDate() - 1)); `
To dało mi obiektu sięgają do wczorajszego
- 1. datę Klasyfikowanie jako "wczoraj", "ostatniego tygodnia", etc
- 2. Oblicz datę początkową i końcową poprzedniego tygodnia
- 3. Sprawdź datę w JavaScript
- 4. data PHP wczoraj
- 5. PHP: termin „Wczoraj”, „Dzisiaj”
- 6. Oblicz prędkość za pomocą javascript
- 7. Oblicz przecięcia dwóch tablic w JavaScript
- 8. Konwertuj datę epoki na znaczącą datę JavaScript
- 9. Jak sformatować datę JavaScript?
- 10. Oblicz datę początkową i nazwę kwartału z podanej daty
- 11. JavaScript: Oblicz n-ty root numeru
- 12. JavaScript, datę następnego dnia dostać
- 13. Javascript Porównaj datę i godzinę
- 14. Jak odjąć datę/czas w javascript?
- 15. przekonwertować datę na znacznik czasu w javascript?
- 16. Jak uzyskać datę serwera w JavaScript
- 17. Pobierz datę konkretnego dnia tygodnia w JavaScript
- 18. Pobierz następną datę i godzinę w javascript
- 19. Oblicz ostatni dzień kwartału
- 20. data mysql pokaż wyniki dzisiaj/wczoraj/tydzień
- 21. Elegancko sprawdź, czy podana data jest wczoraj
- 22. Moment.js - jutro, dziś i wczoraj
- 23. Bugzilla - Czy mogę zobaczyć, co zrobiłem wczoraj?
- 24. elasticsearch zakres dat dostać wczoraj
- 25. MySQL wybierz wczorajszą datę
- 26. JavaScript jest złą datę utworzenia miesięcy
- 27. Skąd JavaScript dostaje nową datę() od
- 28. JavaScript Date - ustawić tylko datę, ignorując czas?
- 29. Oblicz statyczną liczbę losową (oblicz ją raz) w Excelu
- 30. Jak sformatować datę na arabski za pomocą polskich cyfr na datę i rok w JavaScript?
Nice. Na pierwszy rzut oka może się wydawać, że to się nie powiedzie, ponieważ 'getDate' zwraca dzień miesiąca (np .: 1 - 31), ale właściwie' setDate (0) 'ustawia datę na ostatni dzień poprzedniego miesiąca. Czy działa to jednak we wszystkich przeglądarkach? –
Nie można zweryfikować "wszystkich" przeglądarek, ale działałem we wszystkich testowanych wersjach https: //camo.githubusercontent.com/d9443979594114be925dc586285797773c60adbc/68747470733a2f2f63692e746573746c696e672e636f6d2f6a616d65736b796275727a2f7965737465726461792e706e67 –
https://github.com/jameskyburz/yesterday –