J'ai essayé le code ci-dessous mais cela n'a pas fonctionné.
var hour = new Date().getHours();
var min = new Date().getMinutes();
if (hours >= 11 && hours <= 12 && min < 40 && min > 20) {
document.body.style.background = "red";
} else {
document.body.style.background = "green";
}4 Réponses :
vous avez eu trois problèmes ici:
le supplément } à la fin
hours ne sont pas définies. Je l'ai changé en hour , qui est défini
' => ': ce n'est pas nécessaire pour les heures. comme vous ne vérifiez que deux heures (11 et 12), il est beaucoup plus simple de vérifier chaque heure et ce sont les menus séparément.
var hour = new Date().getHours();
var min = new Date().getMinutes();
if((hour == 11 && min >40) || hour == 12 && min < 20) {
document.body.style.background = "red";
} else {
document.body.style.background = "green";
}Je n'utilise pas exactement le même code. En fait, il y a un problème avec la condition. Je n'obtiens pas le résultat au bon moment
Cela devrait fonctionner maintenant. Faites-moi savoir si ce n'est pas le cas
heureux de pouvoir vous aider :) Si vous pensez que c'est la meilleure solution, veuillez la marquer comme correcte.
Vous pouvez utiliser l'objet Date javascript et comparer avec l'objet Date entre l'heure de début, l'heure de fin et l'heure actuelle.
const date1 = new Date();
date1.setHours(11);
date1.setMinutes(40);
const date2 = new Date();
date2.setHours(12);
date2.setMinutes(20);
const today = new Date();
if (today >= date1 && today <= date2) {
document.body.style.background = "red";
} else {
document.body.style.background = "green";
}
a de nouveau mis à jour la réponse avec l'utilisation des meilleures pratiques de l'objet Date . @AHN
A bien fonctionné le (12h00 à 12h20) mais n'a pas fonctionné (11h40 à 11h59)
Hmm, tu es sûr? je peux voir que ça marche
par exemple, vous pouvez setHours (11) et setMinutes (59) pour l'objet today et tester.
Ceci est juste pour cet exemple.
var hour = new Date().getHours();
var min = new Date().getMinutes();
if (hour >= 11 && hour <= 12 && (hour === 11 ? min > 40 : min < 20)) {
document.body.style.background = "red";
} else {
document.body.style.background = "green";
}Votre logique avait quelques problèmes alors je les ai résolus. Cela changera l'arrière-plan en rouge si entre les heures de 11h40 et 12h20 (inclus):
var hour = (new Date()).getHours();
var min = (new Date()).getMinutes();
if (hour == 11 && min >= 40 || hour == 12 && min <= 20) {
document.body.style.background = "red";
} else {
document.body.style.background = "green";
}
Avez-vous essayé littéralement ce code? Parce qu'il y a une erreur de syntaxe (crochet supplémentaire) et que vous définissez également
var hourmais essayez de vérifier leshoursdans la conditionif.min<40 && min>20- cela ne sera vrai que lorsqueminest compris entre 20 et 40. Ce n'est pas ce dont vous avez besoin; vous devez être> = 40 lorsque l'heure est 11 et <= 20 lorsque l'heure est 12.@VLAZ Non, c'est juste un exemple. J'essaie de dire est-il possible de définir la condition entre 11:40 et 12:20
@AHN à l'avenir, les plaidoyers fournissent du code qui s'exécute lorsque vous posez une question. En supposant que le code s'exécute réellement mais que les opérations qu'il effectue sont incorrectes. C'est votre travail de fournir un exemple reproductible minimal et non le nôtre pour essayer de deviner quelle erreur est réellement dans votre code et laquelle ne l'est pas.
@VLAZ Merci de m'avoir informé.