【问题标题】:TimeZone in Strongloop API?Strongloop API中的时区?
【发布时间】:2018-12-07 00:58:01
【问题描述】:

我正在尝试在强环回中为特定区域(印度)定义时区,但我无法找到解决方案。

我正在使用此代码在强环回中定义时区。

 var moment = require('moment-timezone');    
 var time_moment= moment().tz("Asia/Kolkata").format();  

我也使用另一个代码来定义时区, 我在 datasource.json 中定义了时区,但照常不起作用。

"host": "localhost",
"port": "3306",
"database": "test_check",
"username": "root",
"password": "",
"name": "new_file",
"connector": "mysql",
"timezone": "UTC+05:30"

【问题讨论】:

  • 你能补充一点吗?您如何尝试使用时区?你的代码怎么失败了?
  • 基本上,我使用环回 API,通过它我将时间保存在数据库中,但是当我保存时间时,他们根据美国时间保存意味着如果我保存 12:30,他们保存 7:00( 5 :30 之前)。请给我一个在strongloop中定义印度时区的解决方案。
  • 您解决了吗?怎么样?

标签: javascript node.js strongloop


【解决方案1】:

您可以按如下方式添加新时区:

var moment = require('moment-timezone');
var unpackedTimezone = {
    name    : 'Asia/Kolkata',
    abbrs   : ['IST'],
    untils  : [null],
    offsets : [-330]
};
var packedTimezone = moment.tz.pack(unpacked);
var timezone = moment.tz.add(packedTimezone);

这里虽然 IST(印度标准时间)是 UTC+530,但由于某种原因,数组中的 UTC 偏移量必须是 (5*60) + 30 = 330 的加法倒数(负数)。因此,偏移量为 [-330]

这只是为了展示如何创建时区。您还可以使用开发人员在其github 页面上提供的一种。

【讨论】:

  • 不,它不工作,当我们使用这些代码时,控制台时间还可以,但是当它保存在数据库中时,它们会节省 5 小时 30 分钟。请给我任何解决方案来保存默认印度标准时间strongloop API。
【解决方案2】:

因为 Loopback 使用 mysql.js;您可以根据@@global.time_zone 值设置时区。

您可以按如下方式添加时区:

"host": "localhost",
"port": "3306",
"database": "test_check",
"username": "root",
"password": "",
"name": "new_file",
"connector": "mysql",
"timezone": "Asia/Kolkata"

【讨论】:

    【解决方案3】:

    以下对我有用

    let d = moment("2018-07-16T02:40:20.000Z", "YYYY-MM-DD HH:mm:ss.SSSZ").add(moment().utcOffset()).format("YYYY-MM-DD HH:mm:ss")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多