我使用this code在JavaScript中创建Cookie。我实际上改变了一下代码:
raster layers
因此上述函数将confusion tables
作为值发送。在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=/";
}
执行:
encodeURIComponent(value)+'|'+date+expires
现在我需要将此字符串转换为整数,以便与PHP的explode('|',$_COOKIE['my-key'])
整数格式进行比较。
执行以下操作:
$string_time = "Fri Oct 06 2017 19:34:44 GMT 0300 (Eastern European Summer Time);
它实际输出了这个:
time()
问题为什么$currentTime = date('YmdHis', time());
$expire_time = date('YmdHis', strtotime($string_time));
始终具有相同的string(14) "19700101000000" // $currentTime
string(14) "20171006162139" // $cookie_time
值?
答案 0 :(得分:2)
只需使用unix时间戳,因为你没有从expries设置中获取时间,而是从cookies值中获取
function setCookie (name,value,days) {
var expires, newValue;
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = "; expires="+date.toUTCString();
newValue = date.getTime() / 1000;
} else {
expires = "";
}
document.cookie = name+"="+(newValue)+"; path=/";
}
现在您可以将它直接与time()
的PHP unix时间戳进行比较,并以秒为单位获得差异。
请注意,您甚至没有使用expires
变量,因此当Cookie有效时,这无效。