Невозможно вычесть дату и время из другой даты и времени в IBM Watson Assistant, чтобы найти продолжительность между двумя датами и временем.
Я определил 2 переменные контекста в диалоге в Watson Assistant для хранения дат:
variable = $base_date value = "2019-07-01 03:00:00"
variable = $current_date value = "<? now() ?>"
Эти значения являются строками, и я могу предоставить их в ответе. Однако я не могу понять, как преобразовать их в дату и время, чтобы затем вычесть $current_date
из $base_date
, чтобы ответить с такой длительностью, как duration = aa Days, bb Hours, cc Minutes, dd Seconds
. Я не могу понять, как преобразовать их в миллисекунды с 1 января 1970 года, чтобы потом можно было посчитать между двумя датами.
Переменные контекста:
$base_date "2019-07-01 03:00:00"
$current_date "<? now() ?>"
Ответ:
Base date = <? $base_date ?>
Current date = <? $current_date ?>
... выше отлично работает, чтобы показать пользователю указанные даты следующим образом:
Base date = 2019-07-01 03:00:00
Current date = 2019-05-21 12:24:26
Однако это не работает ...
Duration = <? $base_date - $current_date ?>
Вот ошибка, которую я получаю, очевидно, говоря, что я не могу вычесть 2 строки. Я просто не могу понять, как преобразовать дату или время в число, которым я могу манипулировать ....
Ошибка узла диалога
Ошибка при обновлении вывода с выводом идентификатора узла диалога [Welcome].
Вывод узла: [{"text": {"values": ["Base date = \ nCurrent date = ... Duration ="], "selection_policy": "sequential"}}] Оценка SpEL
ошибка: выражение [$ base_date - $ current_date] преобразовано в [
context ['base_date'] - context ['current_date']] в позиции 0:
EL1030E: Оператор SUBTRACT не поддерживается между объектами
введите 'String' и 'String'