JavaScript gg-aa-yy biçiminde yarın tarihi nasıl alınır


91

JavaScript'in yarın tarihini (gg-aa-yyyy) biçiminde görüntülemesini sağlamaya çalışıyorum

Bugünün tarihini (gg-aa-yyyy) biçiminde görüntüleyen bu komut dosyasına sahibim

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)

Ancak yarının tarihini aynı formatta göstermesini nasıl sağlayabilirim? 26/2/2012

Bunu denedim:

var day = currentDate.getDate() + 1

Ancak +131'i tutabilir ve geçebilirim belli ki bir ayda 32 günden fazla yok

Saatlerdir aradınız ama bunun etrafında bir cevap veya çözüm yok mu?

Yanıtlar:


178

Bu senin için çok güzel düzeltecek.

Date yapıcısına bir zaman geçerseniz, işin geri kalanını yapacaktır.

24 saat 60 dakika 60 saniye 1000 milisaniye

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

Unutulmaması gereken bir nokta, bu yöntemin tarihi tam olarak 24 saat sonra döndüreceğidir; bu, gün ışığından yararlanma saatinde yanlış olabilir.

Phil'in cevabı her zaman işe yarar:

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

Yazımı düzenlememin nedeni, eski yöntemimi kullanarak DST sırasında ortaya çıkan bir hata oluşturmamdır.


9
Teşekkürler, biraz daha kısavar currentDate = new Date(+new Date() + 86400000);
Ikrom

13
Bu strateji ile DST ile ilgili sorunlarla karşılaşabileceğinizi unutmayın, bu da yılın bir gününde 23 saat ve bir günde 25 saat olmasına neden olur. Phil'in aşağıdaki cevabı bu sorunu önler.
gsf

3
new Date().getTime()şu şekilde basitleştirilebilirDate.now()
czerny

İkisi de doğru, IE8'de Date.now () olduğunu sanmıyorum.
Roderick Obrist

2
@ConorB, .getMonth (), Ocak için 0, Şubat için 1 ... vb. Aralık için 11 değerini döndürür. 1 eklemek, onu dizi dizininden okunabilir tarihe dönüştürür.
Roderick Obrist

136

JavaScript Datesınıfı bunu sizin için halleder

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

Bugün ayın son günü, 31. gibi olsa bu yine de işe yarayacak mı? +1 eklerseniz 32'nci olmaz mıydınız?
Timo

19
@Timo, örneğimin tam olarak bunu gösterdiğinden eminim
Phil

1
Oh, evet haklısın. Şubat ayında sadece 28 gün olduğunu unutmuşum :-)
Timo

Bu bugün benim için başarısız oldu çünkü yeni Tarih ('2016-10-31') 'Sun Oct 30 2016 23:00:00 GMT-0100 (AZOT)' döndürüyor. Azor adalarındayım ve saat dilimi AZOST'tan AZOT'a değiştirildi
nunoarruda

@nunoarruda üzgünüm, orada ne söylediğinizden veya bu cevapla ne ilgisi olduğundan emin değilim
Phil

7

DateJS kitaplığını kullanırdım. Tam olarak bunu yapabilir.

http://www.datejs.com/

Aşağıdakileri yapın:

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

Date.today() - size bugün gece yarısı verir.


1
Phil'in cevabını daha çok beğendim ... Tüm tarihler için DateJS kullanıyorum - ama öyle görünüyor ki, yalnızca JS kullanılarak yapılabilir!
MattW

4
Date.parse ('yarın'). ToString ('gg-AA-yyyy');
geoffrey.mcgill

5

Yöntem Date.prototype.setDate () , standart aralığın dışındaki bağımsız değişkenleri bile kabul eder ve tarihi buna göre değiştirir.

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

4

Aşağıda, Roderick ve Phil'in cevaplarının tek haneli ayları / günleri açıklayan iki ekstra koşulla birlikte bir kombinasyonunu kullanıyoruz.

Çalıştığım birçok API bu konuda seçicidir ve tarih sınıfının bazı durumlarda size vereceği 6 veya 7 basamak yerine tarihlerin sekiz basamaklı olmasını gerektirir (örneğin '02022017').

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

Kullanım durumları:

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

EĞER "yarın" bugünden farklıysa, başka bir Tarihe bağlıysa, Date.now()Statik yöntemler kullanmayın, bunun yerine statik olmayan kullanmanız gerekir:

örn: Cum Aralık 05 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

Yöntem 1: Diğer kitaplığı kullanmakta sorun yaşamıyorsanız, bu, moment.js kullanarak işinize yarayabilir

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

Yöntem 2: Date.js kullanarak,

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

Bu yöntem, yerel Tarih kitaplığını değil, harici kitaplığı kullanır. Bootstrap-datetimepicker'ım moment.js ve yerel tarih kitaplığını kullandığı için 1. yöntemi tercih ettim. Bu soru bunlardan ve diğer bazı yöntemlerden bahsediyor.


2

Gerçekten çok basit:

1: Bugünün tarih ve saatiyle tarih nesnesi oluşturun. 2: Gün, ay ve tam yılı almak için tarih nesnesi yöntemlerini kullanın ve + operatörünü kullanarak bunları birleştirin.

Tarih ve saatle ilgili ayrıntılı eğitim için http://www.thesstech.com/javascript/date-time JavaScript adresini ziyaret edin .

Basit kod:

  var my_date = new Date();  
  var tomorrow_date =       (my_date .getDate()+1)  + "-" + (my_date .getMonth()+1) + "-" + my_date .getFullYear();
  document.write(tomorrow_date);

OP'nin zaten gözlemlediği gibi, bu tarih aydan aya devredilmez.
Wolfgang Kuehn

1

Yalnızca JS kullanarak (Pure js)

Bugün

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"

Yarın

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

Yarından sonraki gün

Yalnızca iki örn. İle çarpın: - 2 * 86400000

Tüm yerel kısa kodlarını https://stackoverflow.com/a/3191729/7877099 adresinde bulabilirsiniz.


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

Orijinal cevapla aynı, ancak tek satırda:

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

Rakamlar 24 saat 60 dakika 60 saniye 1000 milisaniyedir.


1
DST hesaba katılmadığı için bu cevap doğru değildir.
Hayal kırıklığı

0

bunu deneyebilirsin:

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

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

Lütfen cevabınıza açıklama eklemeyi düşünün.
Amar

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

Basitçe! gg.aa.yyyy biçiminde.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.