JavaScript làm thế nào để có được ngày mai ở định dạng dd-mm-yy


67
13
Phạm Ngọc Diệp
8 năm trước

Tôi đang cố gắng để JavaScript hiển thị ngày mai ở định dạng (dd-mm-yyyy)

Tôi đã có tập lệnh này hiển thị ngày hôm nay ở định dạng (dd-mm-yyyy)

var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")

Displays: 25/2/2012 (todays date of this post)

Nhưng làm thế nào để tôi có được nó để hiển thị ngày mai trong cùng một định dạng tức là 26/2/2012

Tôi đã thử điều này:

var day = currentDate.getDate() + 1

Tuy nhiên tôi có thể giữ +1và đi hơn 31 rõ ràng là không có> 32 ngày trong một tháng

Đã tìm kiếm trong nhiều giờ nhưng dường như không có câu trả lời hoặc giải pháp xung quanh điều này?

Hữu ích 67 Yêu thích 13 Chia sẻ Viết bình luận 0
Không hữu ích

12 Trả lời


146
Võ Minh Khánh
8 năm trước

Điều này sẽ sửa chữa nó thực sự tốt đẹp cho bạn.

Nếu bạn vượt qua hàm tạo ngày, nó sẽ thực hiện phần còn lại của công việc.

24 giờ 60 phút 60 giây 1000 mili giây

var currentDate = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")

Một lưu ý là phương pháp này sẽ trả về ngày chính xác 24 giờ kể từ bây giờ, có thể không chính xác trong khoảng thời gian tiết kiệm ánh sáng ban ngày.

Câu trả lời của Phil là bất cứ lúc nào:

var currentDate = new Date();
currentDate.setDate(currentDate.getDate() + 1);

Lý do tôi chỉnh sửa bài đăng của mình là vì bản thân tôi đã tạo ra một lỗi phát sinh trong DST bằng phương pháp cũ của tôi.

Hữu ích 146 Trả lời hay nhất Chia sẻ Viết bình luận 5
Không hữu ích

Lưu ý rằng với chiến lược này, bạn có thể gặp phải các vấn đề xung quanh DST, khiến một ngày trong năm có 23 giờ và một câu trả lời 25. Câu trả lời của Phil dưới đây tránh được vấn đề này.

Hữu ích 12 · Không hữu ích · Trả lời 0

Cảm ơn, ngắn hơn một chútvar currentDate = new Date(+new Date() + 86400000);

Hữu ích 8 · Không hữu ích · Trả lời 0

new Date().getTime()có thể được đơn giản hóa nhưDate.now()

Hữu ích 2 · Không hữu ích · Trả lời 0

@ConorB, .getMonth () trả về 0 cho tháng 1, 1 cho tháng 2 ... vv 11 cho tháng 12. Thêm 1 biến nó từ chỉ mục mảng thành ngày có thể đọc được.

Hữu ích 1 · Không hữu ích · Trả lời 0

Cả hai đều đúng, tôi không nghĩ IE8 có Date.now ().

Hữu ích 0 · Không hữu ích · Trả lời 0

116
Hoàng Khánh Hằng
8 năm trước

Lớp JavaScript Datexử lý việc này cho bạn

var d = new Date("2012-02-29")
console.log(d)
// Wed Feb 29 2012 11:00:00 GMT+1100 (EST)

d.setDate(d.getDate() + 1)
console.log(d)
// Thu Mar 01 2012 11:00:00 GMT+1100 (EST)

console.log(d.getDate())
// 1
Hữu ích 116 Chia sẻ Viết bình luận 5
Không hữu ích

@Timo khá chắc chắn ví dụ của tôi chứng minh chính xác điều đó

Hữu ích 16 · Không hữu ích · Trả lời 0

Ồ, vâng, bạn đúng. Tôi quên rằng tháng hai chỉ có 28 ngày :-)

Hữu ích 1 · Không hữu ích · Trả lời 0

Điều này sẽ vẫn hoạt động nếu hôm nay là ngày cuối cùng của tháng, như ngày 31? Nếu bạn thêm +1, bạn sẽ không kết thúc với 32?

Hữu ích 0 · Không hữu ích · Trả lời 0

Điều này không thành công với tôi hôm nay vì Ngày mới ('2016-10-31') trả về 'Chủ nhật ngày 30 tháng 10 năm 2016 23:00:00 GMT-0100 (AZOT)'. Tôi đang ở đảo Azores và múi giờ được đổi từ AZOST thành AZOT

Hữu ích 0 · Không hữu ích · Trả lời 0

@nunoarruda xin lỗi, không thực sự chắc chắn những gì bạn đang nói ở đó hoặc những gì nó phải làm với câu trả lời này

Hữu ích 0 · Không hữu ích · Trả lời 0

6
Đặng Hữu Long
8 năm trước

Tôi sẽ sử dụng thư viện DateJS. Nó có thể làm chính xác điều đó.

http://www.datejs.com/

Việc làm như sau:

var d = new Date.today().addDays(1).toString("dd-mm-yyyy");

Date.today() - cho bạn hôm nay lúc nửa đêm.

Hữu ích 6 Chia sẻ Viết bình luận 3
Không hữu ích

Date.parse ('ngày mai'). ToString ('dd-MM-yyyy');

Hữu ích 4 · Không hữu ích · Trả lời 0

Tôi thích câu trả lời của Phil hơn ... Tôi sử dụng DateJS cho tất cả các ngày - nhưng có vẻ như nó có thể được thực hiện bằng cách sử dụng một mình JS!

Hữu ích 1 · Không hữu ích · Trả lời 0

Moment.js cũng có thể giúp với điều này.

Hữu ích 0 · Không hữu ích · Trả lời 0

5
Dương Ngọc Thuận
5 năm trước

Phương thức Date.prototype.setDate () chấp nhận ngay cả các đối số ngoài phạm vi tiêu chuẩn và thay đổi ngày tương ứng.

function getTomorrow() {
    const tomorrow = new Date();
    tomorrow.setDate(tomorrow.getDate() + 1); // even 32 is acceptable
    return `${tomorrow.getFullYear()}/${tomorrow.getMonth() + 1}/${tomorrow.getDate()}`;
}
Hữu ích 5 Chia sẻ Viết bình luận 0
Không hữu ích

4
Vũ Trúc Quỳnh
3 năm trước

Dưới đây sử dụng kết hợp câu trả lời của Roderick và Phil với hai điều kiện bổ sung chiếm một chữ số tháng / ngày.

Nhiều API tôi đã làm việc rất kén chọn về điều này và yêu cầu ngày phải có tám chữ số (ví dụ: '02022017'), thay vì 6 hoặc 7 chữ số, lớp ngày sẽ cung cấp cho bạn trong một số trường hợp.

function nextDayDate() {
      // get today's date then add one
      var nextDay = new Date();
      nextDay.setDate(nextDay.getDate() + 1);

      var month = nextDay.getMonth() + 1;
      var day = nextDay.getDate();
      var year = nextDay.getFullYear();

      if (month < 10) { month = "0" + month } 
      if (day < 10) { day = "0" + day }

      return month + day + year;
}
Hữu ích 4 Chia sẻ Viết bình luận 0
Không hữu ích

3
Phan Việt Tuyết
5 năm trước

Trường hợp sử dụng :

Date.tomorrow() // 1 day next 
Date.daysNext(1) // alternative Date.tomorrow()
Date.daysNext(2) // 2 days next. 

NẾU "ngày mai" không phụ thuộc vào ngày hôm nay mà là một ngày khác khác Date.now(), Đừng sử dụng các phương thức tĩnh mà thay vào đó bạn phải sử dụng không tĩnh:

tức là: ngày 6 tháng 12 năm 2008

 var dec5_2008=new Date(Date.parse('2008/12/05'));
 dec5_2008.tomorrow(); // 2008/12/06
    dec5_2008.tomorrow().day // 6
    dec5_2008.tomorrow().month // 12
    dec5_2008.tomorrow().year //2008
 dec5_2008.daysNext(1); // the same as previous
 dec5_2008.daysNext(7) // next week :)

API:

Dateold=Date;function Date(e){var t=null;if(e){t=new Dateold(e)}else{t=new Dateold}t.day=t.getDate();t.month=t.getMonth()+1;t.year=t.getFullYear();return t}Date.prototype.daysNext=function(e){if(!e){e=0}return new Date(this.getTime()+24*60*60*1e3*e)};Date.prototype.daysAgo=function(e){if(!e){e=0}return Date.daysNext(-1*e)};Date.prototype.tomorrow=function(){return this.daysNext(1)};Date.prototype.yesterday=function(){return this.daysAgo(1)};Date.tomorrow=function(){return Date.daysNext(1)};Date.yesterday=function(){return Date.daysAgo(1)};Date.daysNext=function(e){if(!e){e=0}return new Date((new Date).getTime()+24*60*60*1e3*e)};Date.daysAgo=function(e){if(!e){e=0}return Date.daysNext(-1*e)}
Hữu ích 3 Chia sẻ Viết bình luận 0
Không hữu ích

3
Lý Cẩm Vân
4 năm trước

Phương pháp 1: Nếu bạn không gặp vấn đề trong việc sử dụng thư viện khác, thì điều này có thể phù hợp với bạn khi sử dụng Moment.js

moment().add('days', 1).format('L');

Phương pháp 2: Sử dụng Date.js,

<script type="text/javascript" src="date.js"></script>    
var tomorrow = new Date.today().addDays(1).toString("dd-mm-yyyy"); 

Phương pháp này sử dụng thư viện bên ngoài chứ không phải thư viện Date gốc. Vì bootstrap-datetimepicker của tôi đang sử dụng thư viện date.js và thư viện ngày gốc, tôi thích phương thức 1. Câu hỏi này đề cập đến những điều này và một số phương thức khác.

Hữu ích 3 Chia sẻ Viết bình luận 0
Không hữu ích

2
Hoàng Duy Nhân
5 năm trước

Nó thực sự đơn giản:

1: Tạo đối tượng ngày với ngày và giờ hôm nay. 2: Sử dụng các phương thức đối tượng ngày để lấy ngày, tháng và cả năm và nối chúng bằng toán tử +.

Truy cập http://www.thesstech.com/javascript/date-time JavaScript để xem hướng dẫn chi tiết về ngày và giờ.

Mã mẫu:

  var my_date = new Date();  
  var tomorrow_date =       (my_date .getDate()+1)  + "-" + (my_date .getMonth()+1) + "-" + my_date .getFullYear();
  document.write(tomorrow_date);
Hữu ích 2 Chia sẻ Viết bình luận 1
Không hữu ích

Điều này không xảy ra hàng tháng, như OP đã quan sát.

Hữu ích 0 · Không hữu ích · Trả lời 0

1
Trần Sông Hương
2 năm trước

Giống như câu trả lời ban đầu, nhưng trong một dòng:

var tomorrow = new Date(Date.now() + 24 * 60 * 60 * 1000)

Các con số đứng trong 24 giờ 60 phút 60 giây 1000 mili giây.

Hữu ích 1 Chia sẻ Viết bình luận 1
Không hữu ích

Câu trả lời này không chính xác vì DST không được tính đến.

Hữu ích 0 · Không hữu ích · Trả lời 0

1
Vũ Trân Châu
6 năm trước
        //-----------Date Configuration march 18,2014----------------------

        //alert(DateFilter);

        var date = new Date();
        y = date.getFullYear(), m = date.getMonth();
        var EndDate = new Date();



        switch (DateFilter) {
            case 'today': var StartDate = EndDate;   //todays date                 
                break;
            case 'yesterday':
                var d = new Date();
                var previousDate = new Date(d.getTime() - 1000 * 60 * 60 * 24);
                var StartDate = new Date(previousDate.yyyymmdd()); //yesterday Date
                break;
            case 'tomorrow':
                var d = new Date();
                var NextDate = new Date(d.getTime() + 1000 * 60 * 60 * 24);
                var StartDate = new Date(NextDate.yyyymmdd()); //tomorrow Date
                break;
            case 'thisweek': var StartDate = getMonday(new Date()); //1st date of this week
                break;
            case 'thismonth': var StartDate = new Date(y, m, 1);  //1st date of this month
                break;
            case 'thisyear': var StartDate = new Date("01/01/" + date.getFullYear());  //1st date of this year
                break;
            case 'custom': //var StartDate = $("#txtFromDate").val();                   
                break;
            default:
                var d = new Date();
                var StartDate = new Date(d.getTime() - 30 * 24 * 60 * 60 * 1000); //one month ago date from now.
        }


        if (DateFilter != "custom") {
            var SDate = $.datepicker.formatDate('@Config.DateFormat', StartDate); $("#txtFromDate").val(SDate);
            var EDate = $.datepicker.formatDate('@Config.DateFormat', EndDate); $("#txtToDate").val(EDate);
        }
        //-----------Date Configuration march 18,2014----------------------
Hữu ích 1 Chia sẻ Viết bình luận 1
Không hữu ích

Vui lòng xem xét thêm lời giải thích cho câu trả lời của bạn.

Hữu ích 0 · Không hữu ích · Trả lời 0

1
Phạm Hà Dung
2 năm trước
var curDate = new Date().toLocaleString().split(',')[0];

Đơn giản! ở định dạng dd.mm.yyyy.

Hữu ích 1 Chia sẻ Viết bình luận 0
Không hữu ích

0
Lý Sơn Lâm
6 năm trước
function getMonday(d)
{
   // var day = d.getDay();
   var day = @Config.WeekStartOn
   diff = d.getDate() - day + (day == 0 ? -6 : 0);
   return new Date(d.setDate(diff));
}
Hữu ích 0 Chia sẻ Viết bình luận 0
Không hữu ích

Trả lời của bạn

Xem trước nội dung