База данных: Дата



  • @santilo оно все время имеет какое то значение. Не очистить его...



  • @Viktor это поле не может быть пустым



  • @santilo ага. оно автоматом заполняется датой 1970 года..



  • @Viktor Этот тип поля принимает timestamp в миллисекундах , формат который у тебя в первом посте не пройдет, оставляй это поле пустым (чтобы использовалась текущую дата автоматом), вроде тебе это нужно.



  • @santilo не совсем это.Мне нужно каждый день получать дату, сравнивать ее со значением в поле.Если не равно, тогда пообнулять счетчики и заменить дату.
    Говоришь, в милисекундах..Так это надо как усе пересчитывать, чтобы теперешнюю дату получить в приемлимом формате? Хоть подскажи, куда копать!



  • @Viktor используй действие Получить записи -> добавить фильтр, выбираешь поле которое типа дата, далее тип фильтра (допустим Раньше чем) в значение выбираешь тип выражение и пишешь Date.now() это текущая дата в миллесекундах. На выходе будет список записей, ты можешь пройтись по ним циклом foreach



  • @santilo получилось! Спасибо!



  • @santilo
    Может, теперь подскажешь как вычесть одну дату из другой?
    Яваскрипт это позволяет, но код вида
    [[DATE]] = new Date()
    [[N]] = [[DATE]] - [[DATE_BORN]];

    не работает..



  • Вот так сработает, "выполнить код"

    VAR_DATE = new Date()
    VAR_N = (VAR_DATE) - (VAR_DATE_BORN)
    

    При условии, что ты объявил перед этим переменную DATE_BORN, например так:

    VAR_DATE_BORN = new Date()
    


  • @Fox я тактоже делал
    Только в скобочки не занес. Возвращало null
    И сейчас возвращает ((
    В обоих переменных четко формат даты. Причем, неодинаковой. 1-я больше 2-й..



  • Ну я вот только что всё проверил.
    Тестовый проект



  • @Fox это мистика какая-то. Код работает, и у тебя и у меня в проектах. Но если DATE_BORN брать из базы, то возвращает null



  • У тебя в базе дата в каком виде? Если взять дату количеством миллисекунд, прошедших с 01.01.1970, командой

    +new Date()
    

    то из переменной работает.
    Тот же тестовый проект



  • @Fox там точно тип данных date. Единственное, что я внес его копипастом. На вид тоже самое.



  • @Fox кароче, теперь вопрос стоит не как вычесть дату, а как правильно вычесть дату из таблицы. Потому что та дата, которая получается выражением, и та дата, которая берется из таблицы - какие то разные даты.



  • 0_1493264960572_upload-5a3c67e8-d86b-4c5e-8cfe-6483cf7b2fd6
    В учебнике пишут вот так.
    var msUTC = Date.parse('2012-01-26T13:51:50.417Z');
    Вобщем, такая вот фигня. Похоже, что я чего-то не знаю.



  • Решил вот так. Две колонки типа int
    Получаю целое число дней
    [[DATE_BORN]] = new Date ()
    [[DATE_BORN]] = [[DATE_BORN]] - 0 #придумал такой ход, чтобы извлечь кол-во миллисекунд
    [[DATE_BORN]] = [[DATE_BORN]]/(10006060*24) # получаю кол-во дней
    [[DATE_BORN]] = Math.floor([[DATE_BORN]]) # превращаю в целое
    потом прописываю в базу действием изменить запись если та равна нулю

    получаю текущую дату
    [[DATE]] = new Date ()
    [[DATE]] = [[DATE]] - 0
    [[DATE]] = [[DATE]]/(1000 60 60 24) #почему то значки умножения не ставятся
    [[DATE]] = Math.floor([[DATE]])

    [[N]] = [[DATE]]-[[DATE_BORN]] #Узнаю, сколько дней прошло
    Может, кому пригодится.


  • administrators

    @Viktor Чтобы поменять время в базе нужно записать туда целое число, которое равно количеству миллисекунд с 1 января 1970 года.

    Вот примеры.

    Date.now() //Текущая дата
    Date.now() + 1000 * 60 * 5 //Текущая дата + 5 минут
    


  • @support ага, понял.



  • @support Запись даты в базу в unixtime формате это хорошо, но почему бы не возвращать в этом же формате при чтении?
    Как вообще получить дату из базы в нормальный вид типа UnixTime или Date()?

    Даты при парсинге строки из базы в виде ресурса, возвращаются в формате строки "2017-10-13T22:18:20".
    Проверил в консоле обычного браузера преобразуется в дату как надо командной:

    var date = new Date("2017-10-13T22:18:20");
    

    Но тот же самый код отказывается работать в BAS'е:
    alt text
    0_1507926157785_test.xml


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.