2010-08-26 17 views
18

Tôi thực sự đánh giá cao một số trợ giúp tạo một số JavaScript mà cuối cùng sẽ được sử dụng trong Selenium tự động đặt ngày trước 10 ngày từ ngày hiện tại và hiển thị theo định dạng dd/mm/yyyy sau.Đặt ngày 10 ngày trong tương lai và định dạng thành dd/mm/yyyy (ví dụ: 21/08/2010)

Tôi hiện đang có kịch bản dưới đây, nhưng tôi không nhận được bất cứ nơi nào với nó:

var myDate=new Date(); 
myDate.now.format(myDate.setDate(myDate.getDate()+5),("dd/mm/yyyy"); 

Bất kỳ trợ giúp sẽ được nhiều đánh giá cao.

+0

Lỗi hoặc vấn đề bạn đang gặp phải là gì? –

+3

Tôi phải chỉ ra một chút geek-irony ở đây. Một câu hỏi ngày tháng JavsScript được đăng bởi "Julian" - tất cả các ngày trong JavaScript đều dựa trên hệ thống Ngày tháng Julien http://en.wikipedia.org/wiki/Julian_day#Julian_Date – Fenton

Trả lời

19

Dưới đây là một ví dụ về việc các ngày trong tương lai ...

var targetDate = new Date(); 
targetDate.setDate(targetDate.getDate() + 10); 

// So you can see the date we have created 
alert(targetDate); 

var dd = targetDate.getDate(); 
var mm = targetDate.getMonth() + 1; // 0 is January, so we must add 1 
var yyyy = targetDate.getFullYear(); 

var dateString = dd + "/" + mm + "/" + yyyy; 

// So you can see the output 
alert(dateString); 

Có một số cách duyên dáng hơn để định dạng ngày tháng, ví dụ có thể được tìm thấy tại các nước sau đây:

http://www.west-wind.com/Weblog/posts/282495.aspx

http://www.svendtofte.com/javascript/javascript-date-string-formatting/

+0

Tại sao không thể sử dụng 'định dạng' hoặc' toString 'sau khi sử dụng setDate? –

0

Tôi cần làm điều gì đó như thế này, nhưng tôi cần kết quả trực tuyến. Vì vậy, đây là những gì làm việc cho tôi để có được ngày 10 ngày kể từ bây giờ:

new Date((new Date()).getTime() + (10 * 86400000)) 
+0

Điều này mang lại ngày không chính xác nếu bạn sử dụng một số ngày nhất định. – MasterP

-1

Những gì tôi sẽ làm gì, là tạo ra một tùy chỉnh DateHelper đối tượng đó trông như thế này:

var DateHelper = { 
 
    addDays : function(aDate, numberOfDays) { 
 
     aDate.setDate(aDate.getDate() + numberOfDays); // Add numberOfDays 
 
     return aDate;         // Return the date 
 
    }, 
 
    format : function format(date) { 
 
     return [ 
 
      ("0" + date.getDate()).slice(-2),   // Get day and pad it with zeroes 
 
      ("0" + (date.getMonth()+1)).slice(-2),  // Get month and pad it with zeroes 
 
      date.getFullYear()       // Get full year 
 
     ].join('/');         // Glue the pieces together 
 
    } 
 
} 
 

 
// With this helper, you can now just use one line of readable code to : 
 
// --------------------------------------------------------------------- 
 
// 1. Get the current date 
 
// 2. Add 10 days 
 
// 3. Format it 
 
// 4. Output it 
 
// --------------------------------------------------------------------- 
 
document.body.innerHTML = DateHelper.format(DateHelper.addDays(new Date(), 10));

(xem thêm this Fiddle)

6

Thử:

new Date(Date.now() + (1000 /*sec*/ * 60 /*min*/ * 60 /*hour*/ * 24 /*day*/ * 10)) 
0

trang chủ đề ban đầu này là từ năm 2010. Vì vậy, tôi đã thêm trả lời này vào tháng năm 2017. Đó là một giải pháp đơn giản mà hoạt động tốt cho việc tạo ra một ngày lăn phạm vi dựa trên ngày hiện tại.

Ví dụ: Nếu hôm nay là ngày 28 tháng 8 năm 2017 và bạn muốn ngày bắt đầu là -7 ngày trong quá khứ và ngày trong tương lai là 23 ngày trong tương lai, thì mã JavaScript sau sẽ xuất chuỗi phạm vi ngày : 21 Tháng Tám - 20 tháng 9, năm 2017

sau đó vào ngày hôm sau, trên 29 tháng tám năm 2017, phạm vi ngày sẽ đọc 22 Tháng tám - 21 Tháng Chín, năm 2017

Lưu ý: nếu cần thiết bạn có thể sửa đổi mã để tạo ngày bắt đầu hoặc ngày trong tương lai tĩnh.

Để sử dụng nó trong HTML:

Sự kiện này được tổ chức: <script>document.write(dateRange)</script>

sẽ mang lại:

Sự kiện này được tổ chức: Tháng Tám 21 thru 20 tháng 9 2017

var month = new Array(); 
month[0] = "January"; 
month[1] = "February"; 
month[2] = "March"; 
month[3] = "April"; 
month[4] = "May"; 
month[5] = "June"; 
month[6] = "July"; 
month[7] = "August"; 
month[8] = "September"; 
month[9] = "October"; 
month[10] = "November"; 
month[11] = "December"; 

var startDate = new Date(); 
startDate.setDate(startDate.getDate() -7); 

var futureDate = new Date(); 
futureDate.setDate(futureDate.getDate() + 23); 

var m1 = month[startDate.getMonth()]; 
var d1 = startDate.getDate(); 
var y1 = startDate.getFullYear(); 

var m2 = month[futureDate.getMonth()]; 
var d2 = futureDate.getDate(); 
var y2 = futureDate.getFullYear(); 

var dateRange = m1 + ' ' + d1 + ' thru ' + m2 + ' ' + d2 + ', ' + y2; 

// alert(dateRange); use alert function to test the date range 
Các vấn đề liên quan