date — преобразование отрицательного целого числа в datetime gmt-3 и mktime

Редакция:

ЭТА ЧАСТЬ — ТО, ЧТО МНЕ НУЖНО РЕШИТЬ:

У меня есть отрицательное целое число, например: -10800, и я хочу преобразовать его по местному времени, а именно в Буэнос-Айресе (gmt -3).

Я использую онлайн-конвертер, чтобы проверить, какая это дата, чтобы я мог проверить результаты: www.4webhelp.net, и он выдает, что -10800 это среда, 31 декабря 1969 года, 18:00:00 (GMT -3), но я считаю, что это не правильно. Мне сказали, что отрицательное число находится в моем часовом поясе, который является Буэнос-Айресом.

Я также хочу создавать из даты в строку, используя тот же формат времени. Как я могу это сделать?

ЭТА ЧАСТЬ РЕШЕНА:

Среди вещей, которые я попробовал, чтобы сделать это, возникло новое сомнение при изучении mktime:

Я пытался узнать, какой последний день февраля:

$lastday = mktime(0, 0, 0, 2, 0, 2015);
echo strftime("Last day is: %d", $lastday);

И это бросает, что у февраля есть 31 день, который является неправильным. Почему это так?

0

Решение

Если день 0тогда PHP принимает последний день предыдущего месяца, так

$lastday = mktime(0, 0, 0, 2, 0, 2015);

Дает 31 январь 2015
(0-й день месяца 2, эффективно)

В соответствии с PHP документы

день

Номер дня относительно конца предыдущего месяца. Значения с 1 по 28, 29, 30 или 31 (в зависимости от месяца) относятся к обычным дням в соответствующем месяце. Значения меньше 1 (включая отрицательные значения) относятся к дням в предыдущем месяце, поэтому 0 — последний день предыдущего месяца, -1 — день до этого и т. Д. Значения больше, чем количество дней в соответствующем месяце. соответствующий день в следующем месяце (ах).

(мой акцент)

РЕДАКТИРОВАТЬ

Если вы хотите последний день февраля, используйте

$lastday = mktime(0, 0, 0, 2, 1, 2015);
echo 'Last day is: ', date("t", $lastday);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]