Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Другие языки > функция parse_time неправильно работает


Автор: GQU 8.8.2015, 02:28
Язык pawn
parse_time возвращает количество секунд, прошедших с 0 часов 1 января 1970 года, до заданной даты

Почему timetest = 78742?
Должно же быть 86400(1 сутки = 24*3600)
Код

#include <amxmodx>    
public plugin_init() {
    new timetest = parse_time("2.01.1970","%d.%m.%Y",-1)
    server_print("^n 2.01.1970 = %d ^n", timetest)
}

Почему timetest = -1? 
Код

#include <amxmodx>    
public plugin_init() {
    new timetest = parse_time("1.01.1970 02:00","%d.%m.%Y %H:%M",-1)
    server_print("^n 1.01.1970 02:00 = %d ^n", timetest)
}


Автор: tzirechnoy 8.8.2015, 20:06
Цитата
Почему timetest = 78742


Во-первых (и это, в общем, очевидно), время 0 -- это 1970-01-01 00:00:00 UTC, а у вас, вероятно, часовой пояс на 3 часа отличается.

Во-вторых, похожэ, в этом языке эта функцыя неуказанные части даты/времени (часы и минуты в данном случае) берёт из системных. То есть у вас было где-то 0:52 когда пробовали. Странное решэние, да.

Цитата
Почему timetest = -1?


Вероятно, потому, что правильный unixtime был бы -10800, но поддержки отрицательных unixtime в этой библиотеке нет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)