2011-10-16 32 views
9

Làm thế nào để chuyển đổi chuỗi ngày thành đối tượng Ngày tháng?Làm thế nào để chuyển đổi chuỗi thành đối tượng Ngày?

2011-09-19T19:49:21+04:00 
+2

Trường hợp chuỗi ngày này đến từ đâu? Nếu từ máy chủ, cách an toàn duy nhất của bạn là làm theo cách thủ công vì mỗi quốc gia có thể có định dạng khác nhau cho ngày và giờ và bạn không thể biết chắc chắn điều đó. –

+2

Kiểm tra bài đăng này: http://stackoverflow.com/questions/476105/how-can-i-convert-string-to-datetime-with-format-specification-in-javascript –

+1

chính xác điều này liên quan đến 'jquery' như thế nào , bởi vì bạn đã thêm thẻ đó? –

Trả lời

10

Sử dụng trình phân tích cú pháp ngày tháng jquery.

http://docs.jquery.com/UI/Datepicker/parseDate

Đây là chức năng tốt nhất cho phân tích số ngày ra khỏi chuỗi mà tôi đã có những niềm vui để làm việc với trong js. Và khi bạn thêm thẻ jquery, đây có lẽ là giải pháp tốt nhất cho bạn.

+2

Thời gian hỗ trợ Datepicker có được hỗ trợ không? tức là phần 19: 49: 21 + 04: 00 ?? – Adam

+1

liên kết này cũng có thể hữu ích https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse – zabusa

20

Cách tốt nhất để làm điều này là sử dụng new Date()

Ví dụ:

var stringDate = '2011-09-19T19:49:21+04:00' 
var date = new Date(stringDate) // Mon Sep 19 2011 08:49:21 GMT-0700 (PDT) 
3

tôi chỉ viết một hàm javascript mà làm việc cho bất kỳ trường ngày đầu vào. Tôi đang sử dụng bộ chọn ngày jquery và nó hoạt động tốt với điều đó.

<!DOCTYPE html> 
<html> 
<body> 

<p>Click the button to extract characters from the string.</p> 

<button onclick="myFunction()">Try it</button> 

<p id="enddate"></p> 
<p id="startDate"></p> 

<script> 
    function myFunction() { 
//var str = document.getElementById("start_date).value; 
// var end = document.getElementById("end_date).value; 

    var str = "2014-11-26"; 
    var end = "2014-11-22"; 


//first four strings (year) - starting from zero (first parameter), ends at 4th character (second parameter). It excludes the last character. 
var year = str.substring(0,4); 
var month = str.substring(5,7);//first two characters since 5th. It excludes the 7th character. 
var date = str.substring(8,10);//first two character since 8th char. It excludes the 10th character. 


var endYear = end.substring(0,4); 
var endMonth = end.substring(5,7); 
var endDate = end.substring(8,10); 

var startDate = new Date(year, month-1, date); 
var endDate = new Date(endYear, endMonth-1, endDate); 

document.getElementById("enddate").HTML=endDate; 
document.getElementById("startDate").HTML=startDate; 


if (startDate > endDate) { 
    alert('start date should be less than end date'); 
    return false; 

} else { 

alert('date is ok..'); 
return true; 
} 



} 
</script> 

</body> 
</html> 

hy vọng điều đó sẽ hữu ích. Happy coding :)

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