setcookie strtotime (‘завтра’) выдают неверную дату

#php #strtotime #setcookie

#php #strtotime #setcookie

Вопрос:

Сегодня, 18.05.2011, если я сделаю

 echo date("H:i m/d/Y", strtotime("tomorrow"));
  

я получаю 00:00 19.05.2011, как и должно быть, но если я использую ту же функцию в setcookie, например:

 setcookie("wls_yesterday_review", 'completed', strtotime('tomorrow'),'/','myhost.com');
  

Срок действия моего файла cookie истечет 18.05.2011 в 09:00 вечера

Я не уверен, что я делаю не так, но я тестировал разные способы и в разное время, и я всегда получаю один и тот же результат

я хочу, чтобы срок действия cookie истек в 00: 00 следующего дня. Если сегодня 05/18 10:00 утра, я хочу, чтобы срок его действия истек 19.05 00:00

Спасибо, ребята

Комментарии:

1. Временная метка указана в UTC. Как вы проверяете время истечения срока действия cookie? Является ли ваш местный часовой пояс UTC-3?

2. Я проверил это с помощью плагина для chrome или Firefox, сейчас не могу вспомнить. Да, im utc -3. Я закончил использовать javascript для решения этой проблемы

Ответ №1:

 setcookie("TestCookie", $value, time() 3600);  /* expire in 1 hour */
setcookie("TestCookie", $value, time() 3600*24);  /* expire in 1 day */
  

http://php.net/manual/en/function.setcookie.php

Комментарии:

1. Это не объясняет разницу в значениях, отмеченных в вопросе.

2. Я знаю это, но я хочу, чтобы срок действия cookie истек в 00: 00 следующего дня. Если сегодня 05/18 10:00 утра, я хочу, чтобы срок его действия истек 19.05 00:00

Ответ №2:

функция strtotime() возвращает временную метку в случае успеха, но вам нужно числовое значение, возможно, целое число, в функции setcookie(). Вы должны вычислить секунды до конца сегодняшнего дня и добавить их в time() 3600*24

 (time() 3600*24) (mktime(24,0,0)-time());
  

где mktime(24,0,0)-time() — количество секунд до конца дня.

 setcookie("TestCookie", $value, (time() 3600*24) (mktime(24,0,0)-time()));
  

Надеюсь, это поможет.

Комментарии:

1. Я понимаю вашу функцию, но я все еще получаю день истечения срока действия: четверг, 19 мая 2011, 9:00: 11 вечера