Решено CSJS Работа с датой и временем, взятых в поле xpage dijit.Dialog

Ficoos

Lotus Team
15.03.2016
152
5
BIT
267
Друзья! Есть проблема при работе с датой и временем, взятых в поле типа "Дата\время" в xpage на стороне клиента (CSJS).
получаю текст в формате dd.mm.yyyy hh:mm:ss Полученный текст хочу преобразовать в Date, "var ds = new Date(dds)" , но получаю текущую дату и время. Т.е. оператор "Date" не видит
в аргументе правильный формат для преобразования.
Можно ли как-то преобразовать без лишнего программирования этот текст в формат "yyyy-mm-ddThh:mm:ss"?
Мне надо узнать таймстамп, но без правильного формата даты я всегда получаю либо текущую дату и время, либо 1 января 1970 года, либо NaN. Помогите разобрать!
 
Последнее редактирование:

Ficoos

Lotus Team
15.03.2016
152
5
BIT
267
ДУмал просто форматом преобразовать. В итоге получилось программирование:
JavaScript:
var dates1    = XSP.getElementById("#{id:inputDateIn}");
var datef1    = XSP.getElementById("#{id:inputDateout}");

var ds = XSP.getFieldValue(dates1).replace(" ", "T");
//10.07.2023T14:12:33
var df = XSP.getFieldValue(datef1).replace(" ", "T");
//23.07.2023T14:16:33

var dates = ds.split("T");
var dds1 = dates[0].split(".");
var dds2 = dates[1].split(":");

var ds1 = new Date(dds1[2], (dds1[1]-1), dds1[0], dds2[0], dds2[1], dds2[2])
//Mon Jul 10 2023 14:12:15 GMT+0300
let ts1 = Date.parse(ds1)
//1688987565000

var datef = df.split("T");
var ddf1 = datef[0].split(".");
var ddf2 = datef[1].split(":");
var df1 = new Date(ddf1[2], (ddf1[1]-1), ddf1[0], ddf2[0], ddf2[1], ddf2[2])
//Sun Jul 23 2023 14:16:49 GMT+0300
let tf1 = Date.parse(df1)
//1690111018000

Всем спасибо!
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 980
611
BIT
426
ДУмал просто форматом преобразовать. В итоге получилось программирование:
JavaScript:
var dates1    = XSP.getElementById("#{id:inputDateIn}");
var datef1    = XSP.getElementById("#{id:inputDateout}");

var ds = XSP.getFieldValue(dates1).replace(" ", "T");
//10.07.2023T14:12:33
var df = XSP.getFieldValue(datef1).replace(" ", "T");
//23.07.2023T14:16:33

var dates = ds.split("T");
var dds1 = dates[0].split(".");
var dds2 = dates[1].split(":");

var ds1 = new Date(dds1[2], (dds1[1]-1), dds1[0], dds2[0], dds2[1], dds2[2])
//Mon Jul 10 2023 14:12:15 GMT+0300
let ts1 = Date.parse(ds1)
//1688987565000

var datef = df.split("T");
var ddf1 = datef[0].split(".");
var ddf2 = datef[1].split(":");
var df1 = new Date(ddf1[2], (ddf1[1]-1), ddf1[0], ddf2[0], ddf2[1], ddf2[2])
//Sun Jul 23 2023 14:16:49 GMT+0300
let tf1 = Date.parse(df1)
//1690111018000

Всем спасибо!
а почему не заюзать
и SetAnyTime
 

garrick

Lotus Team
26.10.2009
1 367
152
BIT
339
Дату из строки можно получить через метод parse Java класса DateFormat или SimpleDateFormat. Если нужно из этой даты затем можно получить NotesDateTime.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!