Проверка даты



  • Помогите не получается сделать то что хочу уже несколько часов мучаюсь с этим
    У меня есть дата в таком в виде "20.10.2017"(это будет основная дата) и скрипт получает текст с сайта в виде "21.11.2017" или "5.11.2017" нужно проверить первую дату с остальными если на сайте дата "5.11.2017" то нужно выводить false если совпадает или же "21.10.2017" то true
    я сделал так с помощью js поменял местами Д.М.Г. "2017.10.20" и убрал точки и получается так "20171020", "20171121" и "2017115" после функция if выводит больше или меньше так (20171020) < (20171121) но так как дата идет в виде "5.11.2017" а не "05.11.2017" функция if считывает что дата меньше потому что нет 0 выглядит это так (20171020) < (2017115) если бы было так 20171105 то получилось бы больше...
    Как можно сделать все это? я думаю будет легче просто смотреть дату в начале 5.11.2017 если до первой точки только одна цифра то добавить 0 потом проверить до следующей точки если и там одна цифра то еще добавить 0

    как с помощью js сделать так
    из 5.11.2017 или 5.8.2017
    в 05.11.2017 или 05.08.2017



  • @GamiD
    рекомендую сравнивать по unix time



  • @xclsv said in Проверка даты:

    @GamiD
    рекомендую сравнивать по unix time

    как сделать в bas это?



  • 0_1511547939333_Проверка даты.xml
    добавить нули можно так



  • @afgd said in Проверка даты:

    0_1511547939333_Проверка даты.xml
    добавить нули можно так

    а есть чуть по проще вариант слишком много действий а так спасибо и за это



  • @afgd said in Проверка даты:

    0_1511547939333_Проверка даты.xml
    добавить нули можно так

    Спасибо твой способ чуть изменил сперва парсил строку в per1, per2 и per3
    и вот скрипт
    (((([[PER1]]).length) == (2)) ? ([[PER1]] + ".") : ("0" + [[PER1]] + ".")) + (((([[PER2]]).length) == (2)) ? ([[PER2]] + "." + [[PER3]]) : ("0" + [[PER2]] + "." + [[PER3]]))

    0_1511553825276_Снимок.JPG

    Получилось как и хотел



  • @GamiD
    Через выполнить код



  • @xclsv said in Проверка даты:

    @GamiD
    Через выполнить код

    уже получилось как и хотел выше показал



  • Еще один способ сравнить такие даты (строку можно записать в условие)

    new Date("21.11.2017".split('.').reverse()) > new Date("5.11.2017".split('.').reverse()) 
    

    Преобразуем строки в Date и сравниваем уже эти даты между собой



  • @GamiD

    Сделал модуль для работы с датой.

    0_1513901114351_DateTimeModule.png

    Помимо стандартных возможностей, которые поддерживает класс даты в javascript есть еще дополнительные:

    Парсинг даты с заданным форматом.
    Автоопределение формата даты. Справляется со сложными строками, например, UTC+02:00 10 sep 2010, 18:46
    Форматирование даты.
    Все входные параметры, которые требуют даты, понимают строки. Можно сделать так:

    0_1513901131231_DateDiff.png

    Результат будет 60 секунд.

    Работа с часовыми поясами, их можно менять.
    Инспектор переменных лучше отображает дату.

    0_1513901141037_DateTimeFormat.png

    Модуль можно скачать тут DateTime.zip , и он будет доступен в следующей версии.



  • @support, класс. Красота.



  • @support Получается все эти манипуляции в соседней теме уже не нужны? Прикольно
    Так выходит нагляднее:
    0_1513967923426_forum90.png
    Тестовый скрипт.



  • @Fox воу, а почему у мен такой фичи нет?:с обновлений чет нет



  • @artihorror так надо архив что support выложил распаковать в папку modules BAS-a и появится :)



  • @bigorat пропустил чет этот сабж, дай ссыль если не затруднит



  • @artihorror так вон же сверху под постом support архив прикреплен DateTime.zip



  • @bigorat ослеп, соре)



  • @support Выручил спасибо


Log in to reply