在GM中将GMT日期格式化为整数

时间:2017-10-06 16:28:15

标签: javascript php date time

我使用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 值?

1 个答案:

答案 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有效时,这无效。