2011-01-13 37 views

Trả lời

7
var dateString = '13011948'; 

Chiều dài của văn bản là cố định và luôn đồng Chức vụ. Sau đó, bạn chỉ có thể sử dụng substr để cắt chúng thành các phần và sử dụng parseInt để chuyển đổi chúng thành số.

var month = parseInt(dateString.substr(0, 2), 10), 
     day = parseInt(dateString.substr(2, 2), 10), 
    hour = parseInt(dateString.substr(4, 2), 10), 
    minute = parseInt(dateString.substr(6, 2), 10); 

Hoặc thay vào đó, hãy đặt nó trong một đối tượng ngày.

var date = new Date(); 
date.setMonth (parseInt(dateString.substr(0, 2), 10) - 1); 
date.setDate (parseInt(dateString.substr(2, 2), 10)); 
date.setHours (parseInt(dateString.substr(4, 2), 10)); 
date.setMinutes (parseInt(dateString.substr(6, 2), 10)); 
4

EDIT

Thư viện moment.js tìm thấy here trông tuyệt vời cho điều này!

END EDIT

này sẽ giúp ... working with Dates

+0

wow, phấn khởi vẫn đang chạy !! tôi đã từng đến đó cho các mẫu trang web miễn phí trước khi biến thiên niên kỷ (và lâu trước khi tôi là một nhà phát triển web)! cổ vũ cho việc đi bộ xuống làn đường bộ nhớ :-) – WickyNilliams

+0

lol Tôi chưa bao giờ nghe nói về nó. xuất hiện trong google khi tôi tìm kiếm. Có vẻ như một nguồn tài nguyên tốt cho điều này mặc dù ... – stephen776

2

Có một số phương pháp trong javascript ngày đối tượng đó sẽ giúp bạn có được những thông số

var curdate = new Date(); 
var mday = curdate.getDate();  //returns day of month 
var month = curdate.getMonth();  //returns month 0-11 
var hours = curdate.getHours();  //returns hours 0-23 
var minutes = curdate.getMinutes(); //returns minutes 0-59 

Kiểm tra this

Nếu bạn không có đối tượng ngày, bạn có thể phân tích cú pháp nó bằng cách sử dụng

var curdate = Date.parse("Jan 1, 2010"); 

Để phân tích ngày sang định dạng cụ thể của bạn tham khảo this

+0

Bạn có chắc chắn ví dụ thứ hai là chính xác không? Date.parseDate() dường như không tồn tại đối với tôi và hàm Date.parse() nhận một đối số trong định dạng IETF. –

+0

@Mark Biek - Vâng, Cảm ơn Mark, bạn đã đúng. – niksvp

3

Nếu bạn đang đảm bảo rằng nó luôn luôn phải ở định dạng MMDDhhmm, bạn có thể phân tích nó với một regex đơn giản.

var d = "01121201"; 
var m = /([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/.exec(d); 

console.log(m); 

đó sẽ ra

["01121201", "01", "12", "12", "01"] 

Nhưng bằng cách sử dụng chức năng cập nhật thực tế là tốt hơn nếu có thể.

Bạn có thể làm một cái gì đó như sau để có những kết quả của các trận đấu regex trên để tạo một sự thật Javascript ngày đối tượng:

//The year will default to the current year 
var realDate = new Date(); 
realDate.setMonth(m[1]); 
realDate.setDate(m[2]); 
realDate.setHours(m[3]); 
realDate.setMinutes(m[4]); 
+7

Bạn có bộ râu ấn tượng! – Anders

+0

Bạn sẽ thấy nó ngay bây giờ! Nó ngắn trong hình ảnh đó :) –

+0

Tôi đồng ý, bộ râu của bạn là đáng sợ ..... – Liam

Các vấn đề liên quan