2009-10-16 19 views

Trả lời

139

Xem:

Code:

var strDate = "03.09.1979"; 
var dateParts = strDate.split("."); 

var date = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]); 
+8

Rất tiếc ..một chút boo-boo - các nhà xây dựng ngày thực sự trông như thế này: ngày mới (năm, tháng, ngày [, giờ, phút, giây, mili giây]) vì vậy bạn cần phải thay đổi thứ tự của dateParts bên trong hàm tạo . –

+1

@Salman: cảm ơn và hoàn toàn đúng. cố định –

+6

Một boo-boo khác. Trình tạo ngày tháng JavaScript lạ trong cách xử lý các tháng. Nó xem 0 có nghĩa là tháng 1, 1 có nghĩa là tháng 2, v.v. Dòng trong mã ở trên sẽ trông giống như sau: var date = new Date (ngàyParts [2], dateParts [1] - 1, dateParts [0]) ; –

9

Chúng tôi sử dụng mã này để kiểm tra xem chuỗi là một ngày hợp lệ

var dt = new Date(txtDate.value) 
if (isNaN(dt)) 
+0

định dạng đã cho không khớp với định dạng được yêu cầu bởi https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/parse (và do đó hàm tạo Ngày đó sẽ không đủ) –

+1

Làm việc cho tôi bằng dd MMM yyyy Định dạng so thanx :) – JumpingJezza

+0

Điều đó không kiểm tra các ngày hợp lệ, nó chỉ kiểm tra nếu hàm tạo ngày có thể tạo một ngày hợp lệ từ đầu vào. Cả hai không giống nhau. – RobG

52

Nếu bạn đang sử dụng jQuery UI, bạn có thể định dạng bất kỳ ngày với:

<html> 
    <body> 
     Your date formated: <span id="date1"></span><br/> 
    </body> 
</html> 

 

var myDate = '30.11.2011'; 
var parsedDate = $.datepicker.parseDate('dd.mm.yy', myDate); 

$('#date1').text($.datepicker.formatDate('M d, yy', parsedDate)); 

http://jsfiddle.net/mescalito2345/ND2Qg/14/

+21

+1 Tôi không thấy là hoàn toàn nằm ngoài phạm vi, JavaScript và JQuery là một sự kết hợp chung. – djna

4

Sử dụng đối tượng Date:

var time = Date.parse('02.02.1999'); 
document.writeln(time); 

Hãy cho: 917902800000

+15

'ngày mới (Date.parse ('02 .02.1999 '))' – Duke

+0

+1 Đối với Duke bình luận về 'new Date (Date.parse ('02 .02.1999'))' Đối với Javascript – Jack

2

Chức năng này xử lý cũng là 2001/02/29 ngày không hợp lệ.

function parseDate(str) { 
    var dateParts = str.split("."); 
    if (dateParts.length != 3) 
     return null; 
    var year = dateParts[2]; 
    var month = dateParts[1]; 
    var day = dateParts[0]; 

    if (isNaN(day) || isNaN(month) || isNaN(year)) 
     return null; 

    var result = new Date(year, (month - 1), day); 
    if (result == null) 
     return null; 
    if (result.getDate() != day) 
     return null; 
    if (result.getMonth() != (month - 1)) 
     return null; 
    if (result.getFullYear() != year) 
     return null; 

    return result; 
} 
5

refs: http://momentjs.com/docs/#/parsing/string/

Nếu bạn sử dụng moment.js, bạn có thể sử dụng "chuỗi" + "định dạng" chế độ

moment(String, String); 
moment(String, String, String); 
moment(String, String, Boolean); 
moment(String, String, String, Boolean); 

ví dụ:

moment("12-25-1995", "MM-DD-YYYY"); 
+1

Đối với hầu hết các trường hợp, MomentJS là quá mức cần thiết, khi sử dụng JavaScript thuần túy chỉ cần hàng trăm byte, trong khi MomentJS là 12.4kb gzipped. Thuận tiện cho các nhà phát triển nhưng làm chậm trang web. Không đáng. – Raptor

3

tôi 'v được sử dụng mã sau trong IE. (Tương thích với IE8)

var dString = "2013.2.4"; 
var myDate = new Date(dString.replace(/(\d+)\.(\d+)\.(\d+)/,"$2/$3/$1")); 
alert("my date:"+ myDate); 
0

bạn có thể định dạng ngày chỉ làm loại mã này.In javascript.

// for eg. 
       var inputdate=document.getElementById("getdate").value); 
       var datecomp= inputdate.split('.'); 

       Var Date= new Date(datecomp[2], datecomp[1]-1, datecomp[0]); 
       //new date(Year,Month,Date) 
+0

Bạn phải sử dụng javascript không jquery vì không có thẻ jquery – Sagar

+0

hạnh phúc ... có nghĩa là chỉ cần hiểu senario – Bachas

+0

Vâng. Tôi không nghĩ rằng ví dụ của bạn khác với ví dụ của Martin Staufcik. Trong thực tế, câu trả lời của anh ta có logic bổ sung để xử lý các ngày không hợp lệ. – Sagar