ลบวันจากวันที่ใน JavaScript


603

ไม่มีใครรู้วิธีง่ายๆในการนัดเดท (เช่นวันนี้) และย้อนกลับไปสิบวัน?

ตัวอย่างเช่นถ้าฉันต้องการคำนวณวันที่ 5 วันก่อนวันนี้


4
ฉันพบปัญหาในการใช้คำตอบที่ยอมรับได้ เห็นได้ชัดว่าการใช้ค่าลบใน setDate () ไม่ทำงานตามที่คาดไว้ ดูstackoverflow.com/a/9037132/792287สำหรับโซลูชันอื่น (ดีกว่า)
vandiedakaf

5
ซ้ำซ้อนที่เป็นไปได้: stackoverflow.com/questions/1187824/…
Anderson Green

คำตอบ:


961

ลองสิ่งนี้:

 var d = new Date();
 d.setDate(d.getDate()-5);

โปรดทราบว่าสิ่งนี้จะปรับเปลี่ยนวัตถุวันที่และส่งกลับค่าเวลาของวันที่อัพเดท

var d = new Date();

document.write('Today is: ' + d.toLocaleString());

d.setDate(d.getDate() - 5);

document.write('<br>5 days ago was: ' + d.toLocaleString());


9
การส่งออกของที่ให้ฉันสตริงจำนวนเต็มยาว มีความคิดว่าจะจัดรูปแบบเป็น 05/14/2012 อย่างไร
user525146

162
ระบุว่านี่คือด้านบนของ google ฉันคิดว่าฉันจะตอบความคิดเห็นข้างต้น: new Date(new Date().setDate(new Date().getDate()-5))- ที่จะ 5 วันที่ผ่านมา ในตัวอย่างของคำตอบให้ส่งไปยังวันที่ใหม่เพื่อรับวัตถุวันที่ ดังนั้นnew Date(d)คือสิ่งที่คุณต้องการ
เจสซี

8
ปัญหานี้คือคุณสามารถท้ายด้วย 00 ซึ่งไม่ใช่ค่าที่ถูกต้องสำหรับวันที่
DominicM

24
setDate(-1)จะกำหนดวันที่เป็นวันสุดท้ายของเดือน
Peter

5
@ user525146 ถามวิธีจัดรูปแบบตัวเลขไม่ใช่ตัวเลข ไม่จำเป็นต้องวางคำตอบ การจัดรูปแบบจำนวนหนึ่งใช้วันtoStringวิธีการเช่นtoISOString, toDateStringฯลฯ
ขอ Bad

83
var dateOffset = (24*60*60*1000) * 5; //5 days
var myDate = new Date();
myDate.setTime(myDate.getTime() - dateOffset);

หากคุณทำการจัดการวันที่มีHeadachyจำนวนมากตลอดทั้งเว็บแอปพลิเคชันของคุณDateJSจะทำให้ชีวิตของคุณง่ายขึ้นมาก:

http://simonwillison.net/2007/Dec/3/datejs/


23
มันเป็นกรณีที่มีขอบ แต่สิ่งนี้สามารถล้มเหลวประมาณเวลาเริ่มต้น / สิ้นสุดของการปรับเวลาตามฤดูกาล คุณไม่ได้ลบ 5 วัน แต่ 5 * 24 ชั่วโมง วันแรกของการปรับเวลาตามฤดูกาลมีความยาวเพียง 23 ชั่วโมงและสุดท้ายคือ 25 ชั่วโมง มันมักจะไม่สำคัญ แต่เป็นสิ่งที่ต้องพิจารณา
กีบ

11
@Kip ฉันเกลียดเวลาออมแสง ... และเขตเวลา เราทุกคนควรย้ายไป GMT
cwallenpoole

6
@cwallenpoole ไม่ให้ระเบิดฟองสบู่ของคุณ แต่ใช้ DST แม้ใน Greenwich ดังนั้นหากคุณต้องการเป็น GMT คุณจะถูก จำกัด เฉพาะไอซ์แลนด์และประเทศแอฟริกาตะวันตกบางประเทศ
กีบ

1
ปัญหาของวิธีนี้คือมันใช้ไม่ได้กับปีใหม่และอื่น ๆ
Daniel Williams

4
@danielWilliams สิ่งนี้ไม่ทำงานกับปีใหม่ได้อย่างไร getTime()และsetTime()เป็นมิลลิวินาทีนับตั้งแต่ยุค มันไม่สำคัญว่าถ้าเวลาผ่านไปหนึ่งปี
Mashmagar

52

มันเป็นอะไรเช่นนี้:

var d = new Date(); // today!
var x = 5; // go back 5 days!
d.setDate(d.getDate() - x);

การส่งออกของที่ให้ฉันสตริงจำนวนเต็มยาว มีความคิดว่าจะจัดรูปแบบเป็น 05/14/2012 อย่างไร
user525146

7
ค่าส่งคืนของ d.setDate เป็นค่าจำนวนเต็มแน่นอน อย่างไรก็ตามคุณอาจไม่ได้สนใจค่าตอบแทนในตอนนี้เนื่องจากค่าที่แท้จริงของ "d" ได้ถูกแก้ไข คำถามจริงของคุณคือวิธีการจัดรูปแบบวันที่ของคุณซึ่งขณะนี้อยู่ใน "d" และไม่ใช่ค่าส่งคืนของ setDate เลย (อันที่จริงแล้วมันคือค่าที่ส่งคืน แต่ไม่ใช่วันที่ที่จุดนั้นและฉันไม่ต้องการที่จะทำให้คุณสับสน - เพียงแค่ใช้ d มันจะเร็วขึ้น) สำหรับการจัดรูปแบบวันที่คุณต้องการเมธอด d.getMonth (), d.getFullYear () และ d.getDate () คุณต้องการเพิ่มหนึ่งลงใน d.getMonth () เนื่องจาก ม.ค. คือ 0
Chris Nielsen

2
เป็นวิธีง่ายๆ: function getDaysAgo(b){var a=new Date;a.setDate(a.getDate()-b);return a};เพียงแค่var daysAgo45 = getDaysAgo(45);
SpYk3HH

@MiroKrsjak แน่นอนว่าวิธีนี้ใช้ได้ถ้าคุณข้ามสิ้นเดือน / เริ่มต้น ทำไมมันไม่ทำงาน
Chris Nielsen

23

ฉันสังเกตเห็นว่า getDays + X ไม่ทำงานตามขอบเขตของวัน / เดือน การใช้ getTime นั้นทำงานได้ตราบใดที่วันที่คุณไม่ได้อยู่ก่อนปี 1970

var todayDate = new Date(), weekDate = new Date();
weekDate.setTime(todayDate.getTime()-(7*24*3600000));

3
ฉันสังเกตเห็นเหมือนกัน ฉันประหลาดใจมากกว่านี้ไม่ได้หรือฉันขาดอะไรไป?
ฌอนโกลเวอร์

11
ไม่ถูกต้องวันที่ใหม่ () setDate (-1) จะให้วันสุดท้ายของเดือนก่อนหน้า
zbrunson

2
นอกจากนี้ยังไม่ถูกต้องรอบกรณีขอบของการเริ่มต้น / สิ้นสุดของการปรับเวลาตามฤดูกาล วิธีการของคุณถูกลบ 7 * 24 ชั่วโมงภายใต้สมมติฐานที่ว่าทุกวันมี 24 ชั่วโมง วันแรกของ DST ยาวเพียง 23 ชั่วโมงและวันสุดท้ายคือ 25 ชั่วโมง setDate (getDate () - 7) ไม่มีปัญหานี้
กีบ

1
getTime ทำงานได้ตามเวลาสากล ดังนั้นจะถูกลบอย่างถูกต้องเวลา 7 วันจากวัตถุวันที่ เมื่อคุณแปลงเป็นสตริงในเขตเวลาที่คุณระบุมันจะแสดงเวลาสำหรับโซนนั้นอย่างถูกต้อง
awjr

ระวังในวันเปลี่ยนแปลงเวลา เมื่อเราถอยกลับไปในฤดูใบไม้ร่วงวันนั้นจะมี 25 ชั่วโมงดังนั้นการลบ 24 ชั่วโมงจากเที่ยงคืนจะทำให้คุณในวันเดียวกัน แต่เทคนิคนี้ (การลบมิลลิวินาที) จะทำงานหากคุณปัดเศษวันหลังจากการผ่าตัดทุกครั้งจนถึงเที่ยงคืนที่ใกล้ที่สุด คุณสามารถทำได้โดยเพิ่ม 12 ชั่วโมงจากนั้นตั้งค่าชั่วโมงเป็นศูนย์
Magmatic

18

รับช่วงเวลา เด็กสุดเท่ห์ทุกคนใช้มัน มันมีตัวเลือกการจัดรูปแบบอื่น ๆ ที่ไหน

var n = 5;
var dateMnsFive = moment(<your date>).subtract(n , 'day');

ไม่จำเป็น! แปลงเป็น JS Date obj สำหรับการโยงเชิงมุม

var date = new Date(dateMnsFive.toISOString());

ไม่จำเป็น! รูปแบบ

var date = dateMnsFive.format("YYYY-MM-DD");

คุณจะเริ่มได้รับคำเตือนโดยการส่งวันที่ของคุณเข้าสู่ช่วงเวลา คำเตือนการเลิกใช้: ค่าที่ให้ไม่ได้อยู่ในรูปแบบ RFC2822 หรือ ISO ที่รู้จัก การสร้างช่วงเวลาตกไปถึง js Date () ซึ่งไม่น่าเชื่อถือในทุกเบราว์เซอร์และทุกรุ่น รูปแบบวันที่ไม่ใช่ RFC2822 / ISO จะหมดกำลังใจและจะถูกลบออกในรุ่นใหญ่ที่กำลังจะมาถึง โปรดดูmomentjs.com/guides/#/warnings/js-dateสำหรับข้อมูลเพิ่มเติม
เปลี่ยน

13

ฉันสร้างต้นแบบนี้สำหรับ Date เพื่อให้ฉันสามารถส่งค่าลบเพื่อลบวันและค่าบวกเพื่อเพิ่มวัน

if(!Date.prototype.adjustDate){
    Date.prototype.adjustDate = function(days){
        var date;

        days = days || 0;

        if(days === 0){
            date = new Date( this.getTime() );
        } else if(days > 0) {
            date = new Date( this.getTime() );

            date.setDate(date.getDate() + days);
        } else {
            date = new Date(
                this.getFullYear(),
                this.getMonth(),
                this.getDate() - Math.abs(days),
                this.getHours(),
                this.getMinutes(),
                this.getSeconds(),
                this.getMilliseconds()
            );
        }

        this.setTime(date.getTime());

        return this;
    };
}

ดังนั้นเพื่อใช้มันฉันสามารถเขียน:

var date_subtract = new Date().adjustDate(-4),
    date_add = new Date().adjustDate(4);

2
คุณสามารถใช้d.setDate(d.getDate() + days)กับทั้งค่าบวกและค่าลบสำหรับวันเพื่อเพิ่มและลบวันตามลำดับ และควรทำงานกับอินสแตนซ์ (ตามวิธี Date อื่น ๆ ) ไม่สร้างและส่งคืนสำเนา
RobG

13

โซลูชันที่มีอยู่สองสามตัวนั้นใกล้เคียงกัน แต่ก็ไม่ได้เป็นอย่างที่ฉันต้องการ ฟังก์ชั่นนี้ใช้งานได้ทั้งกับค่าบวกหรือค่าลบและจัดการกรณีขอบเขต

function addDays(date, days) {
    return new Date(
        date.getFullYear(),
        date.getMonth(),
        date.getDate() + days,
        date.getHours(),
        date.getMinutes(),
        date.getSeconds(),
        date.getMilliseconds()
    );
}

2
เหตุใดจึงมีการหกในเดือนถัดไปหากฉันใช้วิธีนี้เพื่อเพิ่ม 20 วันถึงวันที่ 15 ของเดือนปัจจุบัน มันดูเหมือนจะไม่
Bora

2
@Bora - ใช่มันจะเพิ่มเดือนอย่างถูกต้องหากจำเป็น ตัวอย่างเช่นการเพิ่ม 20 วันถึง 15 สิงหาคม: addDays (วันที่ใหม่ (2015, 07, 15), 20) จะกลับมา "Fri Sep 04 2015 00:00:00 GMT-0700 (PDT)"
Joel Fillmore

12

ฉันชอบทำคณิตศาสตร์เป็นมิลลิวินาที ดังนั้นใช้Date.now()

var newDate = Date.now() + -5*24*3600*1000; // date 5 days ago in milliseconds

และถ้าคุณชอบรูปแบบ

new Date(newDate).toString(); // or .toUTCString or .toISOString ...

หมายเหตุ: Date.now()ไม่ทำงานในเบราว์เซอร์รุ่นเก่า (เช่นฉันคิดว่า IE8) polyfill ที่นี่

อัพเดทมิถุนายน 2558

@socketpair ชี้ถึงความเลอะเทอะของฉัน ในขณะที่เขา / เธอพูดว่า "บางวันในปีมี 23 ชั่วโมงและ 25 เนื่องจากกฎเขตเวลา"

หากต้องการขยายคำตอบข้างต้นจะมีความผิดพลาดในการเปิดเดย์ไลท์ในกรณีที่คุณต้องการคำนวณ LOCAL วัน 5 วันที่ผ่านมาในเขตเวลาที่มีการเปลี่ยนแปลงตามเวลากลางวันและคุณ

  • สมมติว่า (ผิด) Date.now()ให้ LOCAL ปัจจุบันแก่คุณในขณะนี้หรือ
  • ใช้.toString()ที่ส่งกลับวันที่ท้องถิ่นและดังนั้นจึงไม่สามารถใช้ร่วมกับDate.now()วันที่ฐานใน UTC

อย่างไรก็ตามมันจะทำงานถ้าคุณทำคณิตศาสตร์ของคุณทั้งหมดใน UTC เช่น

A. คุณต้องการเวลา UTC 5 วันที่แล้วจากทันที (UTC)

var newDate = Date.now() + -5*24*3600*1000; // date 5 days ago in milliseconds UTC
new Date(newDate).toUTCString(); // or .toISOString(), BUT NOT toString

B. คุณเริ่มต้นด้วยวันที่พื้นฐาน UTC อื่นที่ไม่ใช่ "ตอนนี้" โดยใช้ Date.UTC()

newDate = new Date(Date.UTC(2015, 3, 1)).getTime() + -5*24*3600000;
new Date(newDate).toUTCString(); // or .toISOString BUT NOT toString

3
มันไม่แม่นยำ บางวันในปีมี 23 ชั่วโมงและ 25 เนื่องจากกฎเขตเวลา
socketpair

ฉันจะกังวลเกี่ยวกับเงื่อนไขความล้มเหลวเมื่อมีวินาทีกระโดด ... ดังนั้นอาจไม่ดีสำหรับรหัสที่สำคัญ
robocat

12

ฉันพบปัญหากับเมธอด getDate () / setDate () ก็คือมันง่ายเกินไปที่จะเปลี่ยนทุกอย่างเป็นมิลลิวินาทีและบางครั้งไวยากรณ์ก็ยากสำหรับฉันที่จะติดตาม

แต่ฉันชอบที่จะทำงานจากข้อเท็จจริงที่ว่า 1 วัน = 86,400,000 มิลลิวินาที

ดังนั้นสำหรับคำถามเฉพาะของคุณ:

today = new Date()
days = 86400000 //number of milliseconds in a day
fiveDaysAgo = new Date(today - (5*days))

ทำงานเหมือนจับใจ

ฉันใช้วิธีนี้ตลอดเวลาเพื่อทำการคำนวณ 30/60/365 วัน

คุณสามารถคาดการณ์สิ่งนี้เพื่อสร้างหน่วยเวลาเป็นเดือนปี ฯลฯ


11

แยกวันที่ของคุณออกเป็นส่วน ๆ จากนั้นส่งคืนวันที่ใหม่ด้วยค่าที่ปรับ

function DateAdd(date, type, amount){
    var y = date.getFullYear(),
        m = date.getMonth(),
        d = date.getDate();
    if(type === 'y'){
        y += amount;
    };
    if(type === 'm'){
        m += amount;
    };
    if(type === 'd'){
        d += amount;
    };
    return new Date(y, m, d);
}

จำไว้ว่าเดือนนั้นเป็นศูนย์ แต่ขึ้นอยู่กับวัน เช่นวันที่ใหม่ (2009, 1, 1) == 01 กุมภาพันธ์ 2009, วันที่ใหม่ (2009, 1, 0) == 31 มกราคม 2009;


2
จะเกิดอะไรขึ้นถ้าคุณเพิ่มตัวอย่างเช่น 50 วันในวันที่ด้วยวิธีนี้ มันจะตั้งวันที่ถึง 68 สิงหาคม 2009? หรือคุณแน่ใจหรือว่าการทำเช่นนี้ครอบคลุมไปถึงเดือนและ / หรือปีที่ถูกต้องเสมอ
Jesper

ใช้สิ่งนี้เพื่อเพิ่ม addDays, addMonths และ addYears to Date.prototype ดีและเรียบง่าย
Scott Isaacs

1
นี่ควรเป็นคำตอบที่ถูกต้อง - ใช้งานได้แม้ในวันสุดท้ายของปีเมื่อคำตอบที่ยอมรับไม่สำเร็จ
kris

ไม่ทำงานสำหรับวันกับปีที่ผ่านมาตั้งแต่วันที่ 1 ถึง 99 ;-) มากดีกว่าที่จะใช้เพียงได้รับ *และชุด *วิธี
RobG

8

โดยไม่ใช้ตัวแปรตัวที่สองคุณสามารถแทนที่ 7 for ด้วย back x days ของคุณ:

let d=new Date(new Date().getTime() - (7 * 24 * 60 * 60 * 1000))


2

ฉันได้สร้างฟังก์ชั่นสำหรับจัดการวันที่ คุณสามารถเพิ่มหรือลบจำนวนวันชั่วโมงนาที

function dateManipulation(date, days, hrs, mins, operator) {
   date = new Date(date);
   if (operator == "-") {
      var durationInMs = (((24 * days) * 60) + (hrs * 60) + mins) * 60000;
      var newDate = new Date(date.getTime() - durationInMs);
   } else {
      var durationInMs = (((24 * days) * 60) + (hrs * 60) + mins) * 60000;
      var newDate = new Date(date.getTime() + durationInMs);
   }
   return newDate;
 }

ตอนนี้เรียกใช้ฟังก์ชันนี้โดยผ่านพารามิเตอร์ ตัวอย่างเช่นนี่คือการเรียกใช้ฟังก์ชันเพื่อรับวันที่ก่อน 3 วันนับจากวันนี้

var today = new Date();
var newDate = dateManipulation(today, 3, 0, 0, "-");

2

ใช้MomentJS

function getXDaysBeforeDate(referenceDate, x) {
  return moment(referenceDate).subtract(x , 'day').format('MMMM Do YYYY, h:mm:ss a');
}

var yourDate = new Date(); // let's say today
var valueOfX = 7; // let's say 7 days before

console.log(getXDaysBeforeDate(yourDate, valueOfX));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>


1

คำตอบที่นำไปสู่ข้อผิดพลาดในรหัสของฉันที่ในวันแรกของเดือนมันจะตั้งวันที่ในอนาคตในเดือนปัจจุบัน นี่คือสิ่งที่ฉันทำ

curDate = new Date(); // Took current date as an example
prvDate = new Date(0); // Date set to epoch 0
prvDate.setUTCMilliseconds((curDate - (5 * 24 * 60 * 60 * 1000))); //Set epoch time


0

ฉันชอบสิ่งต่อไปนี้เพราะมันเป็นหนึ่งบรรทัด ไม่สมบูรณ์แบบกับการเปลี่ยนแปลงเวลา แต่มักจะดีพอสำหรับความต้องการของฉัน

var fiveDaysAgo = new Date(new Date() - (1000*60*60*24*5));

0

สำหรับฉันชุดค่าผสมทั้งหมดทำงานได้ดีกับตัวอย่างโค้ดด้านล่างตัวอย่างสำหรับการใช้งาน Angular-2 หากคุณต้องการเพิ่มวันส่งจำนวนบวกของวันถ้าคุณต้องการ substract ผ่านจำนวนลบของวัน

function addSubstractDays(date: Date, numberofDays: number): Date {
let d = new Date(date);
return new Date(
    d.getFullYear(),
    d.getMonth(),
    (d.getDate() + numberofDays)
);
}

0

ฉันได้รับไมล์สะสมที่ดีจาก date.js:

http://www.datejs.com/

d = new Date();
d.add(-10).days();  // subtract 10 days

ดี!

เว็บไซต์รวมถึงความงามนี้:

Datejs ไม่เพียง แต่แยกสตริงมันแบ่งมันออกเป็นสองส่วนอย่างสะอาด


0

หากคุณต้องการลบจำนวนวันและจัดรูปแบบวันที่ของคุณในรูปแบบที่มนุษย์สามารถอ่านได้คุณควรพิจารณาสร้างDateHelperวัตถุที่กำหนดเองซึ่งมีลักษณะดังนี้:

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. Subtract 5 days
// 3. Format it
// 4. Output it
// ---------------------------------------------------------------------
document.body.innerHTML = DateHelper.format(DateHelper.addDays(new Date(), -5));

(ดูซอนี้ )


0

ดูรหัสต่อไปนี้ลบวันนับจากวันที่ปัจจุบัน นอกจากนี้ตั้งเดือนตามวันที่ถูกแทนที่

var today = new Date();
var substract_no_of_days = 25;

today.setTime(today.getTime() - substract_no_of_days* 24 * 60 * 60 * 1000);
var substracted_date = (today.getMonth()+1) + "/" +today.getDate() + "/" + today.getFullYear();

alert(substracted_date);

-1

เมื่อตั้งค่าวันที่วันที่แปลงเป็นมิลลิวินาทีดังนั้นคุณต้องแปลงกลับเป็นวันที่:

วิธีนี้ยังคำนึงถึงการเปลี่ยนแปลงปีใหม่ ฯลฯ

function addDays( date, days ) {
    var dateInMs = date.setDate(date.getDate() - days);
    return new Date(dateInMs);
}

var date_from = new Date();
var date_to = addDays( new Date(), parseInt(days) );

-1

คุณสามารถใช้ Javascript

var CurrDate = new Date(); // Current Date
var numberOfDays = 5;
var days = CurrDate.setDate(CurrDate.getDate() + numberOfDays);
alert(days); // It will print 5 days before today

สำหรับ PHP

$date =  date('Y-m-d', strtotime("-5 days")); // it shows 5 days before today.
echo $date;

หวังว่ามันจะช่วยคุณ


-1

ฉันแปลงเป็นมิลลิวินาทีและหักวันอื่นเดือนและปีจะไม่เปลี่ยนแปลงและมีเหตุผล

var numberOfDays = 10;//number of days need to deducted or added
var date = "01-01-2018"// date need to change
var dt = new Date(parseInt(date.substring(6), 10),        // Year
              parseInt(date.substring(3,5), 10) - 1, // Month (0-11)
              parseInt(date.substring(0,2), 10));
var new_dt = dt.setMilliseconds(dt.getMilliseconds() - numberOfDays*24*60*60*1000);
new_dt = new Date(new_dt);
var changed_date = new_dt.getDate()+"-"+(new_dt.getMonth()+1)+"-"+new_dt.getFullYear();

หวังว่าจะช่วย


-1

var date = new Date();
var day = date.getDate();
var mnth = date.getMonth() + 1;

var fDate = day + '/' + mnth + '/' + date.getFullYear();
document.write('Today is: ' + fDate);
var subDate = date.setDate(date.getDate() - 1);
var todate = new Date(subDate);
var today = todate.getDate();
var tomnth = todate.getMonth() + 1;
var endDate = today + '/' + tomnth + '/' + todate.getFullYear();
document.write('<br>1 days ago was: ' + endDate );


1
คุณควรแสดงความคิดเห็นรหัส / คำตอบของคุณเสมอเพราะบางคนอาจไม่ได้สิ่งที่คุณทำ
Michael


-1

ลองอะไรเช่นนี้

dateLimit = (curDate, limit) => {
    offset  = curDate.getDate() + limit
    return new Date( curDate.setDate( offset) )
}

currDateอาจเป็นวันใดก็ได้

ขีด จำกัดอาจแตกต่างกันในจำนวนวัน (บวกสำหรับอนาคตและลบสำหรับอดีต)


-1

สิ่งนี้จะให้ผล 10 วันสุดท้าย 110% การทำงานคุณจะไม่ได้รับปัญหาใด ๆ

var date = new Date();
var day=date.getDate();
var month=date.getMonth() + 1;
var year=date.getFullYear();
var startDate=day+"/"+month+"/"+year;
var dayBeforeNineDays=moment().subtract(10, 'days').format('DD/MM/YYYY');
startDate=dayBeforeNineDays;
var endDate=day+"/"+month+"/"+year;

คุณสามารถเปลี่ยนวันที่ลบได้ตามความต้องการของคุณ



โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.