我必须计算Cookie的到期时间,以便在服务器上跟踪每小时唯一身份用户。但问题是我必须为GMT + 5:45服务器执行此操作。
更新注意:服务器不关心IP或任何东西。我们只想知道这个时间用户是否独一无二!所以,我们跟这样跟踪,如果你有cookie,你就是RETURNING_USER其他UNIQUE_USER并获得一个cookie!
我以某种方式设法使用PHP获取服务器上的当前时间(感谢StackOverflow)。但我无法计算到期时间。
算法如下:
以秒为单位的结果是COOKIE的到期时间。
function getNepalTime(){
// Nepal is in GMT+ 5:45.
// Setting offset to Nepal time.
$offset=5*60*60; //converting 5 hours to seconds.
$offset += 45*60; // Adding 45 mins to offset.
$dateFormat="H:i";
$time=gmdate($dateFormat, time()+$offset);
return $time;
}
function getCookieExpiryTime(){
// Get the current hour in Nepal
currentTime = getNepalTime();
// set the next current hour
nextHour = ?? // How??
// subtract the two time
cookieExpire = nextHour - currentTime;
// convert it into seconds
// the result is the cookie expiry time
// return the time
return cookieExpire;
}
你能否就如何解决这个问题向我提出建议。我已经工作了几个小时。但是,我认为解决方案很简单。它只是遥不可及。对于这个问题的任何建议或解决方法,先生?
更新
// Cookie expiry time in terms of seconds
function getCookieExpiryTime(){
// Get the current seconds elapsed in Nepal
$currentServerTimeInSeconds = HourMinuteToSeconds(getNepalTime());
// find the remainder, and subtract from whole to get expiry time.
$cookieExpiryTimeInSecods = 3600 - $currentServerTimeInSeconds%3600-1;
// add to current time
$cookieExpiryTimeInSecods+=time();
}
这种方法解决了这个问题。 感谢社区的出路。 问题是在下一个小时之前获得Cookie到期时间。 如果你在14:30:00,那就这样了。然后Cookie有29:59秒到期。 我没有在DB中跟踪任何用户详细信息。