JavaScript New Date()
J'ai le code JavaScript suivant, mais pour une raison quelconque le temps n'est pas y compris les minutes:
var austDay = $("#<%= hiddenFieldTime.ClientID %>").val().split(" ");
var year = austDay[0];
var months = austDay[1];
var days = austDay[2];
var time = austDay[3];
var timeUntil = new Date(parseInt(year), parseInt(months),
parseInt(days), parseInt(time));
Quand je débogage à l'aide de firebug ce sont mes valeur:
$("#ctl00_hiddenFieldTime").val() = "2011, 5, 6, 14:20:00"
year = "2011,"
months = "5,"
days = "6,"
time = "14:20:00"
timeUntil = Date {Mon Jun 06 2011 14:00:00 GMT-0400 (Eastern Daylight Time)}
Comme vous pouvez le voir, timeUntil est fixé à 14:00:00
au lieu de 14:20:00
OriginalL'auteur User_1983 | 2011-04-07
Vous devez vous connecter pour publier un commentaire.
parseInt(time)
est le problèmeVoici les quelques dates d'initialisation format
OriginalL'auteur niksvp
Selon la Mozilla documentation pour la Date, suivant les constructeurs sont pris en charge:
Cela signifie que dans votre constructeur, lorsque vous passez
parseInt(time)
, ce paramètre est utilisé uniquement pour lehour
paramètre. Vous avez besoin de passer un paramètre individuel pour les minutes, et encore un autre si vous voulez secondes.Aussi, vous devez toujours passer un
base
paramètreparseInt
, comme suit:Sinon quand vous allez à analyser une valeur avec l'un des principaux
0
commeparseInt('08')
, la valeur sera interprétée comme un nombre octal.OriginalL'auteur Justin Ethier
Votre dernière conversion va tomber tout ce qui est après la virgule:
L'ensemble de la conversion est plutôt gonflé, je suggère d'essayer de formater la chaîne initialement dans un format que vous pouvez passer comme JS du
Date
constructeur, qui va rendre la vie plus facile.OriginalL'auteur davin
parseInt ("14:20:00")
retourne 14OriginalL'auteur Headshota