TypeError:格式不是 date-fns 中的函数

Posted

技术标签:

【中文标题】TypeError:格式不是 date-fns 中的函数【英文标题】:TypeError: format is not a function in date-fns 【发布时间】:2019-03-18 07:33:17 【问题描述】:

我正在从 moment 迁移到 date-fns 并关注官方网站上的文档。

我已经从 npm 安装了 date-fns,当我尝试使用时出现此错误:

TypeError:格式不是函数

我尝试过 import,require 但它们都给出了同样的错误。

var format = require('date-fns/format')
import format from 'date-fns/format'

typeof(format) 也返回 undefined

在 Nodejs 上使用 v1.29.0

【问题讨论】:

【参考方案1】:

来自文档。

import  format  from 'date-fns';

【讨论】:

对于节点:const format = require("date-fns");【参考方案2】:

我按照与您相同的步骤进行操作,对我来说效果很好。

最重要的:将您的节点版本升级到 v8.X 或更高版本。我使用的是节点 v10.8.0。您可以关注here 升级版本。

该库以 npm 包、Bower 包的形式提供,也通过 CDN 分发。

您可以按照以下步骤正确使用它:

第一步:首先,您可以通过运行以下命令来安装软件包。 (你可能会忘记安装包)

npm install date-fns --save

or

yarn add date-fns .   

第 2 步:它用于获取各种格式的格式化日期字符串,如果您使用的是 ES15 标准,则可以通过在代码中添加以下行来导入包。 p>

import format from 'date-fns/format'

第 3 步: 使用语法如下,官方文档中给出了各种格式的列表。可以参考here

format(date, [format='YYYY-MM-DDTHH:mm:ss.SSSZ', [options]])

第 4 步:为了更好地理解这里是一个简单的例子:

 var result = format(
      new Date(2014, 1, 11),
      'MM/DD/YYYY'
    ) 
console.log('Result: ',result);

结论:我尝试了以上所有步骤,在控制台中得到了以下结果:

Result:  02/11/2014

或者: 尝试使用 REPL 运行后续代码。第 1 步: 打开终端并运行命令 sudo node

第 2 步:将以下代码复制并粘贴到您的终端中

var format = require('date-fns/format');
var result = format(
    new Date(2014, 1, 11),
    'MM/DD/YYYY'
) 
console.log('Result: ',result);

第 3 步: 按回车键,您将在您的 终端控制台。

【讨论】:

能否请您检查节点版本。必须是 v8.x 或更高版本。 Nodejs 版本 10 尝试使用 REPL 在终端中运行此代码。 var format = require('date-fns/format'); var result = format(new Date(2014, 1, 11), 'MM/DD/YYYY') console.log('Result: ',result);【参考方案3】:

我已经设法通过在 tsconfig.json 中添加 "esModuleInterop": true 来修复它。

【讨论】:

以上是关于TypeError:格式不是 date-fns 中的函数的主要内容,如果未能解决你的问题,请参考以下文章

在 date-fns 中获取主名月份名称

获取 date-fns 中两个日期之间的持续时间,以天:小时:分钟:秒格式

使用 date-fns 格式化持续时间(从 seconds 开始)

如何在 Vue 3 项目中显示使用 date-fns 格式的 Firestore 时间戳字段?

date-fns - 有没有办法获取短日期格式字符串

如何使用 date-fns 格式化日期?