2015-01-17 54 views
8

olarak ayrıştırmak için "2015-01-16 22:15:00" biçiminde tarih ve saat dizesini ayrıştırmak zorundayım. Bunu JavaScript Date Object'e ayırmak istiyorum. Bunun hakkında herhangi bir yardım?Javascript'teki 'Tarih ve Zaman' dizgisini, özel biçim olan

Bazı jquery eklentileri, moment.js, date.js, xdate.js'yi denedim. Hala hayır şans.

+2

Lütfen girişlerinizi gönderin. Aksi halde yardım etmek zor. – nha

+0

olası bir kopyası [JavaScript'te bir tarihin biçimlendirilmesiyle ilgili belgeleri nerede bulabilirim?] (Http://stackoverflow.com/questions/1056728/where-can-i-find-documentation-on-formatting-a-date-in- javascript) –

cevap

23

Eğer String+Format constructor kullanarak bir an nesnesi oluşturabilirsiniz: Sonra

var momentDate = moment('2015-01-16 22:15:00', 'YYYY-MM-DD HH:mm:ss'); 

, sen toDate() method kullanan JavaScript tarihi Nesne dönüştürebilirsiniz:

var jsDate = momentDate.toDate(); 
+0

moment.js'yi kullanmayı denedim, ancak bir hata oluştu, "ReferenceError: moment tanımlı değil". Ben de js yolumu htmlimde ayarlamıştım. – yuva

+0

[nasıl kullanılır] (http://momentjs.com/docs/#/use-it/) dokümanlarında okuyun. –

+0

Matt Johnson'ın dediği gibi, tarayıcı uygulamanızda moment.js'yi kullanmak için [talimatlar] 'ı (http://momentjs.com/docs/#/use-it/browser/) takip etmeniz gerekmektedir. –

2
new Date("2015-01-16T22:15:00") 

Bkz. Date.parse().

Dize, ISO-8601 biçiminde olmalıdır. Diğer biçimleri ayrıştırmak isterseniz moment.js'u kullanın. moment.js ile

moment("2015-01-16 22:15:00").toDate(); 
+0

Bu benim için çalıştı. Yaptigim öneriye ufak bir korsanlik yaptim, bu çözümü yorum olarak gönderdim. Teşekkürler :) – yuva

1

Ben moment.js adamlarını kullanmaya çalışıyorum. Fakat bu hatayı yaşadığım için "ReferenceError: moment tanımlanmadı", şimdilik şimdilik atlamak zorunda kaldım. Şimdilik geçici bir geçici çözüm kullanıyorum.

function parseDate(dateString) { 
    var dateTime = dateString.split(" "); 
    var dateOnly = dateTime[0]; 
    var timeOnly = dateTime[1]; 

    var temp = dateOnly + "T" + timeOnly; 
    return new Date(temp); 
} 
6

Daha iyi bir çözüm, şimdi kullanıyorum date.js - Ben sadece tarih dizesi "Ayrıştırılmış Sonra

<script type="text/javascript" src="path/to/date.js"></script> 

- https://code.google.com/p/datejs/

Ben bu benim html sayfası komut dosyası eklemiş olarak biçimi belirterek ile 2015/01/16 22:15:00" ,

var dateString = "2015-01-16 22:15:00"; 
var date = Date.parse(dateString, "yyyy-MM-dd HH:mm:ss"); 
+1

Bu, benim için başarısız. Bu date.js ayrıştırma işlevi yalnızca tek bir biçimde çalışır gibi görünüyor. İkinci argüman tamamen yok sayılır. – Marc

1

eminseniz bu kadar İstediğiniz formatta ve hata kontrolüne gerek duymazsanız, bölmeyi kullanarak (ve isteğe bağlı olarak) manuel olarak ayrıştırabilirsiniz. Projemde benzer bir şey yapmam gerekti (MM/GG/YYYY HH: dd: ss: sss) ve çözümümüzü biçiminize uyacak şekilde değiştirdim. Aydaki 1'in çıkarılmasına dikkat edin.

var str = "2015-01-16 22:15:00"; 
//Replace dashes and spaces with : and then split on : 
var strDate = str.replace(/-/g,":").replace(/ /g,":").split(":"); 
var aDate = new Date(strDate[0], strDate[1]-1, strDate[2], strDate[3], strDate[4], strDate[5]) ;