[RESOLU] Comparer date client/date serveur

Eléphanteau du PHP | 16 Messages

02 oct. 2012, 14:33

Bonjour,
afin d'être certain que mon champ date soit correctement complété, je commence mon formulaire php par un contrôle javascript qui compare la date serveur avec la date client. Si la date n'est pas égale dans les deux cas, l'instruction window.alert ouvre une fenêtre avec un message. Ceci fonctionne très bien avec Google Chrome, mais pas du tout avec IE9, Safari ou Firefox, où la fenêtre n'apparaît pas. Je ne comprends pas pourquoi. Quelqu'un aurait-il une idée?

Mammouth du PHP | 702 Messages

02 oct. 2012, 14:36

ça sera plus facile de t'aider en voyant ton code.

Eléphanteau du PHP | 16 Messages

02 oct. 2012, 14:55

Le voici et merci pour aide. Ce n'est peut être pas du code très propre, mais ça fonctionne sur Chrome :-) (mais pas sur les autres navigateurs).

<?php
$aujourphp = date("Ymd");
$aujourphpinvert = date("d.m.Y");
?>

<script language="javascript" type="text/javascript">
var aujourjs = new Date();
var aujourjsy = aujourjs.getFullYear();
var aujourjsm = aujourjs.getMonth()+1;
var aujourjsd = aujourjs.getDate();
var aujourjsytxt = ("" + aujourjsy);
if (aujourjsm < 10) {
var aujourjsmtxt = ("0" + aujourjsm);
} else { var aujourjsmtxt = ("" + aujourjsm); }
if (aujourjsd < 10) {
var aujourjsdtxt = ("0" + aujourjsd);
} else { var aujourjsdtxt = ("" + aujourjsd); }
var aujourjsnbr = Number(aujourjsytxt+aujourjsmtxt+aujourjsdtxt);
var aujourjsinvert = "<?php echo ($aujourphp); ?>";
if (aujour == aujourjsnbr) {
document.write("");
} else { alert("Aujourd'hui nous sommes le "+aujourjsinvert+" et votre ordinateur a le "+aujourjsdtxt+"."+aujourjsmtxt+"."+aujourjsytxt+" comme date interne. Veuillez corriger votre date pour permettre une réservation.");
return; }

</script>

Eléphanteau du PHP | 16 Messages

02 oct. 2012, 17:49

J'ai trouvé l'erreur: return; ne peux pas être utilisé en dehors d'une fonction. Il suffit d'inclure mes var dans une fonction et de faire appel à celle-ci dans un body onload et le tour est joué.