Je crée un cookie en JavaScript avec this code. En fait, je changé un peu le code:Format GMT date à integer dans PHP
function setCookie (name,value,days) {
var expires, newValue;
if (days) {
var date = new Date(); // days = 0.0006944444; // testing with one minute
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = "; expires="+date.toString();
newValue = encodeURIComponent(value)+'|'+date+expires;
} else expires = "";
document.cookie = name+"="+(newValue)+"; path=/";
}
Ainsi, la fonction ci-dessus envoie encodeURIComponent(value)+'|'+date+expires
en tant que valeur. En PHP que je peux faire explode('|',$_COOKIE['my-key'])
avec la date formatée comme celui-ci:
$string_time = "Fri Oct 06 2017 19:34:44 GMT 0300 (Eastern European Summer Time);
Maintenant je dois convertir cette chaîne en entier à comparer contre time()
format entier du PHP.
Faire ce qui suit:
$currentTime = date('YmdHis', time());
$expire_time = date('YmdHis', strtotime($string_time));
Il génère en fait ceci:
string(14) "19700101000000" // $currentTime
string(14) "20171006162139" // $cookie_time
Question pourquoi est-$currentTime
toujours la même valeur 19700101000000
?
Ceci est déroutant? Il est clair que vous n'obtenez pas l'heure d'expiration du cookie défini, mais en quelque sorte à partir du script créant une date UTC. Pourquoi ne l'obtenez-vous pas comme un timestamp unix à la place. – adeneo
C'est la première fois que je fais cela, peut-être que vous pouvez faire la lumière sur quelle valeur devrait être définie comme timestamp UNIX? – thednp
D'où obtenez-vous '$ string_time', et comment l'avez-vous eu sur le serveur? – adeneo