JavaScript cách lấy ngày mai ở định dạng dd-mm-yy


90

Tôi đang cố gắng tải 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 tháng ở đị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 cách nào để nó hiển thị ngày mai ở 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à vượt qua 31 rõ ràng là không có> 32 ngày trong một tháng

Đã tìm kiếm hàng 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?

Câu trả lời:


176

Đ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 một thời gian, 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 điều cần lưu ý là phương pháp này sẽ trả về ngày chính xác trong 24 giờ kể từ bây giờ, có thể không chính xác vào khoảng thời gian tiết kiệm ánh sáng ban ngày.

Câu trả lời của Phil hoạt động 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 xuất hiện trong DST bằng phương pháp cũ của mình.


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

13
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 ngày có 25. Câu trả lời của Phil dưới đây tránh được vấn đề này.
gsf

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

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

2
@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 của con người.
Roderick Obrist

136

Lớp JavaScript Datexử lý điều 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

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

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

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

Đ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 ở quần đảo Azores và múi giờ được thay đổi từ AZOST để AZOT
nunoarruda

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

7

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/

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.


1
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 chỉ bằng cách sử dụng JS!
MattW

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

5

Phương thức Date.prototype.setDate () chấp nhận các đối số chẵn bên 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()}`;
}

4

Phần 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 tính cho tháng / ngày một chữ số.

Nhiều API tôi đã từng làm việc rất kén chọn đ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ố mà 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;
}

3

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 với Date.now() , Khô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 05 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)}

3

Phương pháp 1: Nếu bạn không gặp sự cố khi sử dụng thư viện khác, thì điều này có thể hiệu quả với bạn bằng cách 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 Ngày gốc. Vì bootstrap-datetimepicker của tôi đang sử dụng moment.js và thư viện ngày gốc, tôi thích phương pháp 1. Câu hỏi này đề cập đến những phương pháp này và một số phương pháp khác.


2

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

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

Truy cập http://www.thesstech.com/javascript/date-time JavaScript để có 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);

Điều này không thay đổi từ ngày này sang tháng khác, như OP đã quan sát.
Wolfgang Kuehn

0
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));
}

0

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

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

Các con số này tồn tại trong 24 giờ 60 phút 60 giây 1000 mili giây.


1
Câu trả lời này không đúng vì DST không được tính đến.
Thất vọng

0

bạn có thể thử điều này:

function Tomorrow(date=false) {
    var givendate = (date!=false) ? new Date(date) : new Date();
    givendate.setDate(givendate.getDate() + 1);
    var day = givendate.getUTCDate()
    var month = givendate.getUTCMonth()+1
    var year = givendate.getUTCFullYear()
    result ="<b>" + day + "/" + month + "/" + year + "</b>";
    return result;
} 
var day = Tomorrow('2020-06-30');
console.log('tomorrows1: '+Tomorrow('2020-06-30'));
console.log('tomorrows2: '+Tomorrow());


0
        Date.prototype.NextDay = function (e) {
        return new Date(this.getFullYear(), this.getMonth(), this.getDate() + ("string" == typeof e ? parseInt(e, 10) : e));
    }

    // tomorrow
    console.log(new Date().NextDay(1))

    // day after tomorrow
    console.log(new Date().NextDay(2))

0

Chỉ sử dụng JS (js thuần túy)

Hôm nay

new Date()
//Tue Oct 06 2020 12:34:29 GMT+0530 (India Standard Time)
new Date(new Date().setHours(0, 0, 0, 0))
//Tue Oct 06 2020 00:00:00 GMT+0530 (India Standard Time)
new Date(new Date().setHours(0, 0, 0,0)).toLocaleDateString('fr-CA')
//"2020-10-06"

Ngày mai

new Date(+new Date() + 86400000);
//Wed Oct 07 2020 12:44:02 GMT+0530 (India Standard Time)
new Date(+new Date().setHours(0, 0, 0, 0) + 86400000);
//Wed Oct 07 2020 00:00:00 GMT+0530 (India Standard Time)
new Date(+new Date().setHours(0, 0, 0,0)+ 86400000).toLocaleDateString('fr-CA')
//"2020-10-07"
//don't forget the '+' before new Date()

Ngày mốt

Chỉ cần nhân với hai ví dụ: - 2 * 86400000

Bạn có thể tìm thấy tất cả các mã ngắn ngôn ngữ từ https://stackoverflow.com/a/3191729/7877099


-1
        //-----------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----------------------

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

-1
var curDate = new Date().toLocaleString().split(',')[0];

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.