4

目标:在 NetSuite SuiteScript 2.0 计划脚本中将 JS 日期对象转换为“11/2/2017”格式的字符串表示。

我有一个需要用于 2 个目的的日期对象。一方面,我将使用它进行比较(所以我想要实际的日期对象)。另一个是我希望它是自定义记录的名称,即字符串值。

我在预定脚本中的 NetSuite SuiteScript 2.0 (Javascript) 中执行此操作。现在日期的 toString() 是:“2017-11-02T07:00:00.000Z”。我想最终的名称格式是 2017 年 11 月 2 日。

当我在浏览器测试应用程序中测试 toLocaleDateString() 时,我得到 11/2/2017 - 我想要的确切格式。但是,当我在 SuiteScript 2.0 中起诉同样的事情时,我得到“2017 年 11 月 2 日”。我知道客户端/服务器之间存在差异,但这令人沮丧。

我尝试了 format.parse() 函数,因为 NetSuite 的文档声称这相当于 1.0 nlapiDateToString() 函数。这没有用。

除了编写我自己的函数(我很想这样做)之外,有谁知道如何实现这个目标?

4

2 回答 2

11

要切换到该格式,您不会使用 format.parse,而是使用 format.format。这是一个将日期对象转换为该字符串格式的简单示例。

require(['N/format'],function(format){
  function formatDate(testDate){
    log.debug('testDate: '+testDate);
    var responseDate=format.format({value:testDate,type:format.Type.DATE});
    log.debug('responseDate: '+responseDate);
  }

  var testDate=new Date();
  formatDate(testDate);
});
于 2017-11-02T16:20:22.940 回答
2

我将建议使用momentJS库来满足您所有的 SuiteScript 日期操作需求。它作为 SuiteScript 2.0 模块运行良好,您可以轻松地格式化日期:

var now = new Date();
var formattedDate = moment(now).format('M/D/YYYY');
于 2017-11-02T14:48:04.700 回答