বর্তমান তারিখের 30 দিন আগে কীভাবে পাবেন?


100

আমার কাছে একটি শুরু ক্যালেন্ডার ইনপুট বাক্স এবং একটি শেষ ক্যালেন্ডার ইনপুট বাক্স রয়েছে। আমরা বর্তমানের তারিখের 30 দিন পূর্বে ক্যালেন্ডার ইনপুট বাক্স এবং শেষ ক্যালেন্ডার ইনপুট বাক্সকে বর্তমান তারিখ হিসাবে শুরু করতে চাই। এখানে আমার ডেট ওয়ার্স।

var today = new Date(),
    dd    = today.getDate(),
    mm    = today.getMonth(),
    yyyy  = today.getFullYear(),
    month = ["January", "February", "March",
        "April", "May", "June", "July", "August",
        "September", "October" "November", "December"],
    startdate = month[mm] + ", " + yyyy.toString();

শেষের তারিখটি এমন কিছু হবে যা var enddate = startdate - 30;স্পষ্টতই এটি কাজ করে না।

সুতরাং যদি বর্তমান তারিখটি 30 ডিসেম্বর, 2011 হয় তবে আমি শুরু তারিখটি 1 ডিসেম্বর, 2011 পড়তে চাই।

সম্পাদনা: আমার প্রশ্নের উত্তর দেওয়া হয়েছিল ... সাজানো। Date.today();এবং Date.today().add(-30);কাজ তবে আমার ফর্ম্যাটটিতে তারিখটি দরকার January 13, 2012। না Fri Jan 13 2012 10:48:56 GMT -055 (EST)। কোন সাহায্য?

আরও সম্পাদনা: এই লেখার হিসাবে এটি 2018 Just কেবলমাত্র মোমেন্ট.জেএস ব্যবহার করুন । এটাই উত্তম.


stackoverflow.com/questions/563406/… আমি মনে করি এটি সাহায্য করতে পারে।
টিম উইথারস

উত্তর:


154

দুর্দান্ত ডেটজস জাভাস্ক্রিপ্টের তারিখ লাইব্রেরিটি ব্যবহার করে দেখুন (মূলটি আর রক্ষণাবেক্ষণ করা হয় না তার পরিবর্তে আপনি এই সক্রিয়ভাবে রক্ষণাবেক্ষণের কাঁটাচামচ করতে আগ্রহী হতে পারেন ):

Date.today().add(-30).days(); // or...
Date.today().add({days:-30});

[সম্পাদনা]

আরও দেখুন চমৎকার Moment.js জাভাস্ক্রিপ্ট তারিখ গ্রন্থাগার :

moment().subtract(30, 'days'); // or...
moment().add(-30, 'days');

4
আমি সময় ছাড়াই ইউটিসিতে আজ এবং 30 দিন আগে এবং শেষ তারিখগুলি পাওয়ার জন্য লড়াই করে যাচ্ছিলাম। এটি কাজ করেছে:moment( moment().subtract(30, 'days') ).format("YYYY-MM-DD")
ডিলান ভ্যালাদে

4
আমি জাভাস্ক্রিপ্টের তারিখ অবজেক্টটি ফিরে পেতে পদ্ধতিকে ব্যবহার করেছি এবং moment()পদ্ধতিটি সংযুক্ত করেছি toDate()। ধন্যবাদ!
ব্রিলি ক্রিস্টোফার অক্সলে

6
এর জন্য আপনার কেন একটি লাইব্রেরি ব্যবহার করা দরকার? পাগল মনে হচ্ছে।
হ্যারি

4
আপনি কনসোল.লগের জন্য একটি লাইব্রেরি সুপারিশ করতে পারেন?
আন্দ্রে এলরিকো

160

এটা চেষ্টা কর

var today = new Date()
var priorDate = new Date().setDate(today.getDate()-30)

@ নীল দ্বারা উল্লিখিত হিসাবে, এই পদ্ধতিটি জাভাস্ক্রিপ্ট টাইমস্ট্যাম্প বিন্যাসে ফিরে আসে। এটিকে ডেট অবজেক্টে রূপান্তর করতে, আপনাকে উপরেরটি একটি নতুন তারিখ অবজেক্টে পাস করতে হবে; new Date(priorDate)


17
বাহ্যিক গ্রন্থাগারটি ব্যবহার না করেই আমি এই সমাধানটি সবচেয়ে পছন্দ করি। ধন্যবাদ
Gowiem

17
নোট করুন যে এই পদ্ধতিটি জাভাস্ক্রিপ্ট টাইমস্ট্যাম্প বিন্যাসে ফিরে আসে। এটি আবার তারিখের অবজেক্টে রূপান্তর করতে, আপনাকে new Date(priorDate)
নীল

4
কখনও কখনও আপনি কেবল লাইব্রেরি ছাড়া ভ্যানিলা জেএস চান! ধন্যবাদ :)
অ্যান্ড্রু ম্যাকোল্যাশ

আমি সেটডেট পেয়েছি () কোনও ফাংশন নয়
chovy

4
@ শেভিকে কেবলমাত্র আপনি যে ত্রুটিটি পেয়েছেন তা কল্পনা করতে পারি কারণ আপনি setDate()কোনও Dateবস্তুতে কল করছেন না । যদিও আপনার কোডটি না দেখে নির্ণয় করা অসম্ভব।
ররি ম্যাকক্রসন

91

এখানে আপনার জন্য একটি কুরুচিপূর্ণ সমাধান:

var date = new Date(new Date().setDate(new Date().getDate() - 30));

25
হাসিখুশিভাবে এটিই সেরা সমাধান।
মার্ক রজার্স

8
সম্মত - এটি সেরা সমাধান। এই ঠিক কিন্তু, সংক্ষিপ্ত, এবং সম্পূর্ণ হয়েছে (কোন বহিরাগত লাইব্রেরি প্রয়োজনীয়) - ররি McCrossan এর উত্তর সমাধান।
ড্যান নিসেনবাউম

7
@ মার্করোগার্স "ilaজ্জ্বল্যপূর্ণভাবে" সঠিক শব্দ। জাভাস্ক্রিপ্ট তারিখগুলি সত্যই অযৌক্তিক।
জোসেফস্টাইন্স

হ্যাঁ এটি একটি সহজ এবং সর্বোত্তম সমাধান।
শচিনী উইথারানা

40
startDate = new Date(today.getTime() - 30*24*60*60*1000);

.getTime()পদ্ধতি একটি প্রমিত জাতীয় টাইমস্ট্যাম্প (মিলিসেকেন্ডে জানুয়ারী 1/1970 দেখাও) যার উপর আপনি নিয়মিত গণিত অপারেশন, যা ফিরে তারিখ বস্তু সরাসরি খাওয়ানো যেতে পারে ব্যবহার করতে পারেন ফেরৎ।


10

আজ থেকে পরবর্তী 30 দিন পান Get

let now = new Date()
console.log('Today: ' + now.toUTCString())
let next30days = new Date(now.setDate(now.getDate() + 30))
console.log('Next 30th day: ' + next30days.toUTCString())

আজ শেষ 30 দিনের ফর্মটি পান

let now = new Date()
console.log('Today: ' + now.toUTCString())
let last30days = new Date(now.setDate(now.getDate() - 30))
console.log('Last 30th day: ' + last30days.toUTCString())


7

জাভাস্ক্রিপ্ট কোনও বাহ্যিক লাইব্রেরি ছাড়াই এটি পরিচালনা করতে পারে।

var today = new Date();
var dateLimit = new Date(new Date().setDate(today.getDate() - 30));

document.write(today + "<br/>" + dateLimit)


4

সহজ।(Using Vanilla JS)

let days=30;
this.maxDateTime = new Date(Date.now() - days * 24 * 60 * 60 * 1000);

আইএসওফর্ম্যাট?

let days=30;
this.maxDateTime = new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString();


3

সাধারণ 1 লাইনার ভ্যানিলা জাভাস্ক্রিপ্ট কোড:

const priorByDays = new Date(Date.now() - days * 24 * 60 * 60 * 1000)

উদাহরণস্বরূপ: days = 7 বর্তমান অনুমান করুনdate = Fri Sep 18 2020 01:33:26 GMT+0530

ফলাফলটি হবে: Fri Sep 11 2020 01:34:03 GMT+0530

এর সৌন্দর্য হ'ল কাঙ্ক্ষিত ধরণের ফলাফল পেতে আপনি এটি ব্যবহার করতে পারেন

  • টাইমস্ট্যাম্প: Date.now() - days * 24 * 60 * 60 * 1000

  • আইএসওএসটিং: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString()



2

আমি মুহুর্ত js পছন্দ করব

startDate = moment().subtract(30, 'days').format('LL')  // January 29, 2015

endDate = moment().format('LL'); // February 28, 2015

1

এটি একটি ES6 সংস্করণ

let date = new Date()
let newDate = new Date(date.setDate(date.getDate()-30))
console.log(newDate.getMonth()+1 + '/' + newDate.getDate() + '/' + newDate.getFullYear() )

এটির মতো এই উত্তরগুলির তুলনায় এটি কীভাবে আলাদা ? এছাড়াও, এখানে এমন কিছু নেই যা ES5 ... বা ES3 তেও করা যায়নি।
হেরেটিক বানর 21

1

আপনি নোড জেএসে মুহূর্তটি ব্যবহার করে কোডের 1 লাইন মাধ্যমে কেবল এটি করতে পারেন। :)

    let lastOneMonthDate = moment().subtract(30,"days").utc().toISOString()

ইউটিসি ফর্ম্যাট চাই না, EASIER: পি

    let lastOneMonthDate = moment().subtract(30,"days").toISOString()

1

আপনি যদি মুহুর্তের দিকে ঝুঁকেন না, আপনি এটি ব্যবহার করতে পারেন:

let x = new Date()

x.toISOString(x.setDate(x.getDate())).slice(0, 10)

মূলত এটি বর্তমান তারিখটি (বর্তমান মাসের তারিখের সংখ্যাসূচক মান) পায় এবং তারপরে মানটি সেট করে। তারপরে এটি আইএসও ফর্ম্যাটে রূপান্তরিত হয় যা থেকে আমি খাঁটি সংখ্যাসূচক তারিখটি টুকরো টুকরো করে (অর্থাৎ 2019-09-23)

আশা করি এটি কাউকে সাহায্য করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.