类型“字符串”不可分配给类型“日期”

时间:2020-02-04 10:59:03

标签: angular typescript

我是TypeScript的新手。我正在尝试以select TO_CHAR( (TIMESTAMP '1970-01-01 00:00:00 UTC' + (my_date/1000) * INTERVAL '1' SECOND) AT TIME ZONE 'America/New_York', 'YYYY-MM-DD HH24:MI:SS') as my_string from my_table where TIMESTAMP '1970-01-01 00:00:00 UTC' + (my_date/1000) * INTERVAL '1' SECOND >= systimestamp - INTERVAL '1' HOUR; 格式获取今天的日期,但出现此错误:

类型'string'不能分配给类型'Date'

这是我的代码:

mm-dd-yyyy

应该直接。没有火箭科学。请纠正我哪里我错了。 我因以下几行而收到此错误:

  1. initCalendarYear() { var today = new Date(); var dd = today.getDate(); var mm = today.getMonth()+1; var yyyy = today.getFullYear(); if(dd < 10) { dd = '0'+dd; } if(mm < 10) { mm = '0'+mm; } today = mm+'-'+dd+'-'+yyyy; console.log(today); }
  2. dd='0'+dd;
  3. mm='0'+mm;

我正在从以下方面寻求帮助:

JavaScript : Display the current date

2 个答案:

答案 0 :(得分:5)

new Date()是一个日期。您将其分配给var today,这会将变量的类型隐式设置为Date

mm+'-'+dd+'-'+yyyy是一个字符串。您尝试将其分配给today的{​​{1}}。它不是一个日期,所以会出现错误。您无法更改变量的类型(除非您首先声明要明确允许多种类型的变量)

使用其他变量名来存储您的字符串。

(执行类似操作的其他变量也是如此)

答案 1 :(得分:0)

问题出在TS中的严格类型中。

今天是Date类型,您尝试用另一种类型来重新分配值,在您的情况下是String

在JS中可以使用,但在TS中则不能。