moment.js ile tarihi biçimlendir


262

Bu biçimde bir dize var:

var testDate = "Fri Apr 12 2013 19:08:55 GMT-0500 (CDT)"

Moment.js kullanarak mm/dd/yyyy : 04/12/2013görüntülemek için bu biçimde olsun istiyorum .

Bu yöntemi kullanarak yapmaya çalıştım,

moment(testDate,'mm/dd/yyyy');

Hangi hatalar ve diyor there is no such method called replace? buna yanlış mı yaklaşıyorum?

Düzenle:

Ayrıca meteor.js için paketlenmiş moment.js'nin önceden paketlenmiş bir sürümünü kullandığımı da belirtmeliyim

Object [object Date] has no method 'replace' : The Exact error from the console

Yığın izleme:

 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) 

1
replace()Kodunuzu kullanıyor musunuz ? Değilse, kullandığınız eklenti uygunsuz bir şekilde varolmayan bir yöntemi çağırıyor.
— cereallarceny

Sorumumu tam hata ve yığın izlemesini 'replace' olarak adlandırılan yöntemle güncelledim. Ben hiçbir zaman doğrudan yerine çağırmak değilim
— Warz

Yanıtlar:


591

2nd argümanı moment()bir olan ayrıştırma biçimi yerine bir gösterim biçimi.

Bunun için .format()yöntemi istersiniz :

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

Ayrıca durumun önemli olduğunu unutmayın. Ay, Ay Günü ve Yıl için biçim büyük harf olmalıdır.


Mükemmel. Başlangıçta bu moment (). Format () gibi kullanmaya çalıştı, hangi başarısız oldu. Teşekkürler
— Warz

var obj = {end_date: moment ($ scope.activity.endDate) .format ('AA / GG / YYYY')};
— Michael J. Calkins

@MichaelCalkins Üzgünüm. O ne için? Ve neden AngularJS ( $scope) için ek referans ?
— Jonathan Lonowski

@JonathanLonowski Bu herhangi bir değişken olabilir. Bu cevabı programlama ve arıyordum. Sadece bir örnek.
— Michael J. Calkins

Ne zaman biçim kullanın, ben tarih () çağıramıyorum. Bu yüzden bir gün ("DD-AA-YYYY") biçimini kapmak için bir çeşit alt dize yapısı kullanmak zorunda kaldım.
— Henk Jansen

49

Moment.js dosyasını ekleyin ve aşağıdaki kodu kullanarak tarihinizi biçimlendirebilirsiniz

var formatDate= 1399919400000;

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

Çıktım "13/05/2014"


1
Bunu nasıl tersine çevirebilirim? Yani daha sonraki bir formata sahipsem ve birincisini değiştirmek istiyorsam.
— Arslan Tariq

2
@ArslanTariq dönemden momentObject.valueOf()milisaniye almak için kullanabilirsiniz .
— WesternGun

8
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"

1
Bu kodun OP sorununu nasıl çözdüğünü açıklarsanız yardımcı olacaktır .
— Robert Columbia

5

Çıkış tarihini kullanmak için format. İkinci moment argümanı ayrıştırma içindir - ancak bunu atlarsanız testDatekullanımdan kaldırma uyarısına neden olursunuz

Kullanımdan kaldırma uyarısı: sağlanan değer, tanınan bir RFC2822 veya ISO biçiminde değil ...

bu uyarıyı atlamak için ayrıştırma biçimi sağlamalısınız


Harika, önce tarih formatımızın tanımlayıcısını (format) sonra arzu formatını sağlamalıyım. güzel bir örnek.
— Sudhir K Gupta
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.