将日期时间从Angular发送到Nodejs的正确方法是什么?

时间:2018-05-02 06:34:19

标签: node.js angular typescript time angular5

我在模板驱动的表单中使用primeng日历。当我将16/05/2018 11:45从角度传递到节点时。它被转换为  2018-05-16T06:15:33.000Z

我发现我可以通过

将其转换回IST时间

new Date(req.body.BIDInstalledFrom.toLocaleString("en-ind",{timeZone:'Asia/Kolkata'}));

但这似乎不是正确/推荐的方式。

1 个答案:

答案 0 :(得分:0)

当客户端和服务器之间的时区不同或未确定时,将始终发生这种情况。

我主要通过传输时间戳来解决这样的问题,这需要在客户端进行一些不同的处理。

对于 prime-ng callendar ,可以通过 callendar 元素上的dateFormat属性进行配置

<!-- dateFormat="@" provides a timestamp -->
<p-calendar [(ngModel)]="dateValue" dateFormat="@"></p-calendar>

primeng documentation复制:

以下选项可以是格式的一部分。

  • d - 月中的某一天(没有前导零)
  • dd - 月中的一天(两位数)
  • 一年中的一天(没有前导零)
  • oo - 一年中的一天(三位数)
  • D - day name short
  • DD - 天名长
  • m - 一年中的月份(无前导零)
  • mm - 一年中的一个月(两位数)
  • M - 月份简称
  • MM - 月份名称
  • y - 年(两位数)
  • yy - year(四位数)
  • @ - Unix时间戳(自1970年1月1日起的ms)
  • ! - Windows滴答声(自01/01/0001起100ns)
  • &#39; ...&#39; - 文字文字
  • &#39;&#39; - 单引号