JavaScript cara mendapatkan tanggal besok dalam format hh-bb-tt

90

Saya mencoba membuat JavaScript menampilkan tanggal besok dalam format (hh-bb-tttt)

Saya punya skrip ini yang menampilkan tanggal hari ini dalam format (hh-bb-tttt)

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)

Tapi bagaimana cara membuatnya menampilkan tanggal besok dalam format yang sama yaitu 26/2/2012

Saya mencoba ini:

var day = currentDate.getDate() + 1

Namun saya bisa menyimpan +1dan pergi ke 31 jelas tidak ada> 32 hari dalam sebulan

Sudah mencari berjam-jam tetapi sepertinya tidak ada jawaban atau solusi seputar ini?

daza166
sumber

Jawaban:

176

Ini harus memperbaikinya sangat bagus untuk Anda.

Jika Anda melewatkan waktu konstruktor Tanggal itu akan melakukan sisa pekerjaan.

24 jam 60 menit 60 detik 1000 milidetik

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>")

Satu hal yang perlu diingat adalah bahwa metode ini akan mengembalikan tanggal tepat 24 jam dari sekarang, yang bisa jadi tidak akurat seputar waktu musim panas.

Jawaban Phil bekerja kapan saja:

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

Alasan saya mengedit posting saya adalah karena saya sendiri membuat bug yang terungkap selama DST menggunakan metode lama saya.

Roderick Obrist
sumber
9
Terima kasih, sedikit lebih pendekvar currentDate = new Date(+new Date() + 86400000);
Ikrom
13
Perhatikan bahwa dengan strategi ini Anda dapat mengalami masalah seputar DST, yang menyebabkan satu hari dalam setahun memiliki 23 jam dan satu hari memiliki 25. Jawaban Phil di bawah ini menghindari masalah ini.
gsf
3
new Date().getTime()dapat disederhanakan sebagaiDate.now()
czerny
Keduanya benar, saya rasa IE8 tidak memiliki Date.now () sekalipun.
Roderick Obrist
2
@ConorB, .get bulan () mengembalikan 0 untuk Januari, 1 untuk Feb ... dll 11 untuk Desember. Menambahkan 1 mengubahnya dari indeks larik menjadi tanggal yang dapat dibaca manusia.
Roderick Obrist
136

Kelas JavaScript Datemenangani ini untuk Anda

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
Phil
sumber
Akankah ini tetap berfungsi jika hari ini adalah hari terakhir dalam sebulan, seperti tanggal 31? Jika Anda menambahkan +1, bukankah Anda akan berakhir di urutan ke-32?
Timo
19
@Timo cukup yakin contoh saya menunjukkan dengan tepat
Phil
1
Oh, ya kamu benar. Saya lupa bahwa Februari hanya punya 28 hari :-)
Timo
Ini gagal bagi saya hari ini karena Tanggal baru ('2016-10-31') mengembalikan 'Sun 30 Okt 2016 23:00:00 GMT-0100 (AZOT)'. Saya berada di kepulauan Azores dan zona waktunya diubah dari AZOST menjadi AZOT
nunoarruda
@nunoarruda maaf, tidak begitu yakin apa yang Anda katakan di sana atau apa hubungannya dengan jawaban ini
Phil
7

Saya akan menggunakan perpustakaan DateJS. Itu bisa melakukan persis seperti itu.

http://www.datejs.com/

Lakukan hal berikut:

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

Date.today() - memberi Anda hari ini pada tengah malam.

MattW
sumber
1
Saya lebih suka jawaban Phil ... Saya menggunakan DateJS untuk semua tanggal - tetapi tampaknya itu bisa dilakukan dengan menggunakan JS saja!
MattW
4
Date.parse ('besok'). ToString ('dd-MM-yyyy');
geoffrey.mcgill
5

Metode Date.prototype.setDate () menerima bahkan argumen di luar rentang standar dan mengubah tanggal yang sesuai.

function getTomorrow() {
    const tomorrow = new Date();
    tomorrow.setDate(tomorrow.getDate() + 1); // even 32 is acceptable
    return `${tomorrow.getFullYear()}/${tomorrow.getMonth() + 1}/${tomorrow.getDate()}`;
}
czerny.dll
sumber
4

Di bawah ini menggunakan kombinasi jawaban Roderick dan Phil dengan dua persyaratan tambahan yang menjelaskan bulan / hari satu digit.

Banyak API yang pernah saya tangani pilih-pilih tentang hal ini, dan memerlukan tanggal untuk memiliki delapan digit (misalnya '02022017'), alih-alih 6 atau 7 digit yang akan diberikan kelas tanggal kepada Anda dalam beberapa situasi.

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;
}
DNestoff
sumber
3

Kasus penggunaan:

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

JIKA "besok" tidak bergantung pada hari ini tetapi dari Tanggal lain yang berbeda Date.now(), Jangan gunakan metode statis melainkan Anda harus menggunakan non-statis:

yaitu: Jum 05 Des 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)}
Abdennour TOUMI
sumber
3

Metode 1: Jika Anda tidak memiliki masalah dalam menggunakan pustaka lain, maka ini dapat bekerja untuk Anda menggunakan moment.js

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

Metode 2: Menggunakan Date.js,

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

Metode ini menggunakan pustaka eksternal dan bukan pustaka Tanggal asli. Karena bootstrap-datetimepicker saya menggunakan moment.js dan pustaka tanggal asli, saya lebih suka metode 1. Pertanyaan ini menyebutkan ini dan beberapa metode lainnya.

Shiwangi
sumber
2

Ini sangat sederhana:

1: Buat objek tanggal dengan tanggal dan waktu hari ini. 2: Gunakan metode objek tanggal untuk mengambil hari, bulan dan tahun penuh dan menggabungkannya menggunakan operator +.

Kunjungi http://www.thesstech.com/javascript/date-time JavaScript untuk tutorial rinci tentang tanggal dan waktu.

Kode sampel:

  var my_date = new Date();  
  var tomorrow_date =       (my_date .getDate()+1)  + "-" + (my_date .getMonth()+1) + "-" + my_date .getFullYear();
  document.write(tomorrow_date);
Sohail Arif
sumber
Ini tidak bergulir dari tanggal ke bulan, seperti yang telah diamati oleh OP.
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));
}
preetika
sumber
0

Sama seperti jawaban aslinya, tetapi dalam satu baris:

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

Angka-angka tersebut bertahan selama 24 jam 60 menit 60 detik 1000 milidetik.

Velter
sumber
1
Jawaban ini tidak benar karena DST tidak diperhitungkan.
Kecewa
0

Anda bisa mencoba ini:

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());

Walter Nuñez
sumber
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))
Fhulufhelo Mokhomi
sumber
0

Hanya menggunakan JS (Pure js)

Hari ini

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"

Besok

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()

Lusa

Kalikan saja dengan dua contoh: - 2 * 86400000

Anda dapat menemukan semua shortcode lokal dari https://stackoverflow.com/a/3191729/7877099

Isuru Dilshan
sumber
-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----------------------
preetika
sumber
Mohon pertimbangkan untuk menambahkan penjelasan pada jawaban Anda.
Amar
-1
var curDate = new Date().toLocaleString().split(',')[0];

Secara sederhana! dalam format dd.mm.yyyy.

Idan
sumber