Có ai biết cách phân tích cú pháp chuỗi ngày theo định dạng bắt buộc dd.mm.yyyy
không?Chuỗi phân tích chuỗi thời gian trong JavaScript
Trả lời
Xem:
Code:
var strDate = "03.09.1979";
var dateParts = strDate.split(".");
var date = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);
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 . –
@Salman: cảm ơn và hoàn toàn đúng. cố định –
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]) ; –
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))
đị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 đủ) –
Làm việc cho tôi bằng dd MMM yyyy Định dạng so thanx :) – JumpingJezza
Đ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
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));
+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
nhà phát triển ASP.NET có thể lựa chọn built- ích này trong (MS JS phải được bao gồm trong trang):
var date = Date.parseLocale('20-Mar-2012', 'dd-MMM-yyyy');
http://msdn.microsoft.com/en-us/library/bb397521%28v=vs.100%29.aspx
OP không đề cập đến anh ta sử dụng ASP.NET – Raptor
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;
}
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");
Đố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
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);
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)
Bạn phải sử dụng javascript không jquery vì không có thẻ jquery – Sagar
hạnh phúc ... có nghĩa là chỉ cần hiểu senario – Bachas
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
Bạn có muốn tạo đối tượng ngày mới từ chuỗi trong định dạng đó không? –