Javascript 使用Moment.js设置日期格式

Javascript 使用Moment.js设置日期格式,javascript,momentjs,date-parsing,Javascript,Momentjs,Date Parsing,我有一个以下格式的字符串: var testDate = "Fri Apr 12 2013 19:08:55 GMT-0500 (CDT)" 我想使用此格式的getmm/dd/yyyy:04/12/2013进行显示 我试着用这个方法 moment(testDate,'mm/dd/yyyy'); 哪些错误并表示没有称为“替换”的方法?我是不是走错了路 编辑 我还应该提到的是,我正在使用一个为Meteor.js打包的预打包版本Moment.js 堆栈跟踪: at make

我有一个以下格式的字符串:

var testDate = "Fri Apr 12 2013 19:08:55 GMT-0500 (CDT)"
我想使用此格式的get
mm/dd/yyyy:04/12/2013
进行显示

我试着用这个方法

moment(testDate,'mm/dd/yyyy');
哪些错误并表示没有称为“替换”的方法?我是不是走错了路


编辑 我还应该提到的是,我正在使用一个为Meteor.js打包的预打包版本Moment.js

堆栈跟踪:

 at makeDateFromStringAndFormat (http://127.0.0.1:3000/packages/moment/lib/moment/moment.js?b4e3ac4a3d0794023a4410e7941c3e179398b5b0:539:29)
    at moment (http://127.0.0.1:3000/packages/moment/lib/moment/moment.js?b4e3ac4a3d0794023a4410e7941c3e179398b5b0:652:24)
    at populateProfileForEdit (http://127.0.0.1:3000/client/views/home/administration/directory/profiles/profiles.js?acfff908a6a099f37312f62892a22b40f82e5e0f:147:25)
    at Object.Template.profile_personal.rendered (http://127.0.0.1:3000/client/views/home/administration/directory/profiles/profiles.js?acfff908a6a099f37312f62892a22b40f82e5e0f:130:13)
    at Spark.createLandmark.rendered (http://127.0.0.1:3000/packages/templating/deftemplate.js?b622653d121262e50a80be772bf5b1e55ab33881:126:42)
    at http://127.0.0.1:3000/packages/spark/spark.js?45c746f38023ceb80745f4b4280457e15f058bbc:384:32
    at Array.forEach (native)
    at Function._.each._.forEach (http://127.0.0.1:3000/packages/underscore/underscore.js?867d3653d53e9c7a171483edbcad9670e12288c7:79:11)
    at http://127.0.0.1:3000/packages/spark/spark.js?45c746f38023ceb80745f4b4280457e15f058bbc:382:7
    at _.extend.flush (http://127.0.0.1:3000/packages/deps/deps.js?9642a93ae1f8ffa8eb1c2475b198c764f183d693:231:11) 

moment()
的第二个参数是一种显示格式,而不是一种显示格式

为此,您需要:


还要注意的是,情况确实很重要。对于月、月日和年,格式应为大写。

包括moment.js,使用以下代码可以设置日期格式

var formatDate= 1399919400000;

var responseDate = moment(formatDate).format('DD/MM/YYYY');

我的输出是“2014年5月13日”

对于起始输出日期,请使用
格式。第二个瞬间参数用于解析-但是如果省略它,则
testDate
将导致弃用警告

弃用警告:提供的值不是可识别的RFC2822或ISO格式

var testDate=“2013年4月12日星期五19:08:55 GMT-0500(CDT)”
设s=时刻(testDate).format('MM/DD/YYYY');
msg.innerText=s

这可能有助于那些自愿或意外地一个接一个地寻找多种日期格式的人。 请查找代码: 我在当前日期使用moment.js格式函数(今天是29-06-2020) var startDate=时刻(新日期())。格式('MM/DD/YY');结果:20年6月28日

如果我运行以下语句,则它只保留年份部分:20作为“06/28/20”: 新日期(起始日期) 结果是“周一至六月28日1920 00:00:00 GMT+0530(印度标准时间)”

然后,当我在“06/28/20”上使用另一种格式时:startDate=moment(startDate).format('MM-DD-YYYY');结果:06-28-1920,在google chrome和firefox浏览器中,第二次尝试的正确日期为:06-28-2020。但在IE中,它有问题,从这一点我了解到我们可以在给定的日期应用一种日期格式,如果我们想要第二种日期格式,它应该在新的日期应用,而不是在第一种日期格式的结果上。 并注意到,第一次应用“MM-DD-yyy”和下一次应用“MM-DD-YY”在IE中工作。 为了清楚理解,请在链接中找到我的问题:

您可能不再需要Moment.js了 Moment是一个很棒的时间操纵库,但它被认为是一个遗留项目,团队建议使用其他库

是最好的轻量级库之一,它是模块化的,因此您可以选择所需的函数并减少包大小(&)

另一个反对在现代应用中使用力矩的常见论点是力矩的大小。Moment不能很好地与现代的“树摇动”算法配合使用,因此它倾向于增加web应用程序包的大小

使用日期fns设置日期格式

// moment.js
moment().format('MM/DD/YYYY');
// => "12/18/2020"

// date-fns
import { format } from 'date-fns'
format(new Date(), 'MM/dd/yyyy');
// => "12/18/2020"

更多关于备忘单的信息,以及您可以用来替换moment.js的函数列表:

您是否在代码中使用
replace()
?如果不是,你使用的插件不恰当地调用了一个不存在的方法。我已经用确切的错误更新了我的问题,并用调用“replace”的方法堆栈跟踪。我不是直接给allExcellent打电话。我最初尝试像这样使用它,但失败了。Thanksvar obj={end_date:moment($scope.activity.endDate).format('MM/DD/YYYY')@迈克尔·卡金斯:对不起。那是干什么用的?还有,为什么还要额外引用AngularJS(
$scope
)?@JonathanLonowski,它可以是任何变量。我碰巧正在编程并寻找这个答案。仅举一个例子。每当我使用format时,我都不能对其调用date()。因此,我不得不使用某种子字符串构造来从(“DD-MM-YYYY”)格式中获取日期。我如何才能逆转这种情况?我的意思是,如果我有更晚的格式,并希望将其更改为第一种格式。@ArslanTariq您可以使用
momentObject.valueOf()
从历元中获取毫秒。太好了,首先我必须提供日期格式的标识符(格式),然后是desire格式。很好的例子。如果你解释一下这段代码是如何解决OP的问题的,那会很有帮助。
var formatDate= 1399919400000;

var responseDate = moment(formatDate).format('DD/MM/YYYY');
moment().format();                                // "2019-08-12T17:52:17-05:00" (ISO 8601, no fractional seconds)
moment().format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Monday, August 12th 2019, 5:52:00 pm"
moment().format("ddd, hA");                       // "Mon, 5PM"
import { format } from 'date-fns' // 21K (gzipped: 5.8K)
import moment from 'moment' // 292.3K (gzipped: 71.6K)
// moment.js
moment().format('MM/DD/YYYY');
// => "12/18/2020"

// date-fns
import { format } from 'date-fns'
format(new Date(), 'MM/dd/yyyy');
// => "12/18/2020"
var moment = require('moment');

let yourdate = '2021-01-02T07:57:45.121Z'; // for example

moment(yourdate).format('MM/DD/YYYY');

// output : 01-02-2021


moment(yourdate).format('DD-MMM-YYYY');

// output : 01-Jan-2021