База данных: Дата
-
@BigLebovski попробовал. Не вышло. Даже не пишется скопированное один к одному значение из самого поля "Дата".
Support, вернитесь к нам!
-
@Viktor При вставки записи в базу, поле c типом date можешь оставлять пустым, и это поле автоматом заполнится текущей датой.
-
@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 кароче, теперь вопрос стоит не как вычесть дату, а как правильно вычесть дату из таблицы. Потому что та дата, которая получается выражением, и та дата, которая берется из таблицы - какие то разные даты.
-
В учебнике пишут вот так.
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]] #Узнаю, сколько дней прошло
Может, кому пригодится.
-
@Viktor Чтобы поменять время в базе нужно записать туда целое число, которое равно количеству миллисекунд с 1 января 1970 года.
Вот примеры.
Date.now() //Текущая дата Date.now() + 1000 * 60 * 5 //Текущая дата + 5 минут