2013-04-17 20 views
6

Mój przyjaciel i ja robimy szkolny projekt; zadaniem jest zrobić rezerwację pokoju. To jest nasz pierwszy rok próbujący JavaScript, a my chcemy, aby ciąg znaków został sformatowany w czasie (h: m). Użytkownik naszej witryny rezerwacji pokoi może wybrać godzinę, o której chce przebywać, a wyjście to: H: m (24 godziny na dobę: minuty). Na przykład 12:15.Konwertuj string na czas JavaScript (h: m)

Dlatego moje pytanie brzmi: Czy istnieje możliwość przekonwertowania tego ciągu (h: m) na czas i łatwego sprawdzenia, czy użytkownik wpisał więcej niż 30 minut czasu rezerwacji? Tak więc możemy na przykład powiedzieć:

if(start_of_reservation < start_of_reservation(+30minutes)){ 
    alert("You need to book a room atleast 30minutes"); } 

else if(start_of_reservation > start_of_reservation(+6hours)){ 
    alert("You can't book a room longer than 6 hours"); } 

else { 
// moving on.. 
} 
+0

Istnieje wiele data javascript libs: * http://momentjs.com/ * http://www.datejs.com/ * https://www.google.com/search?q=javascript+date + większość bibliotek zajmie się analizą daty i porównaniem. –

Odpowiedz

9
var year = '2013'; 
var month = '04'; 
var day = '18'; 

var hour = '12'; 
var min = '35'; 

var reserv = new Date(year,month,day,hour,min) 

console.log(reserv); 

Ci, rok, miesiąc i dzień Wartości możesz pobrać za siebie, sprawdzając aktualną datę. Jest to wyłącznie po to, aby przekonwertować ciąg znaków na datę.

Użyć reserv.getTime(), aby przekonwertować do milisekund, a tym samym być w stanie porównać dwa razy;

reserv.getTime() - reserv2.getTime() 

Aby uzyskać więcej informacji, sprawdź MDN.

+1

Metoda 'getTime' jest niepotrzebna; 'reserv - reserv2' będzie miał taki sam rezultat. –

+0

@Sortofabeginner Fair wystarczająco :) –

1

Tak. Użyj regular expressions i Date object.

wyrażeniach regularnych byłyby wykorzystywane do godziny i minuty wyodrębnić z ciągu dat,

i obiekt Date będą wykorzystywane do porównań.