উত্তর:
var date = new Date();
date ; //# => Fri Apr 01 2011 11:14:50 GMT+0200 (CEST)
date.setDate(date.getDate() - 1);
date ; //# => Thu Mar 31 2011 11:14:50 GMT+0200 (CEST)
খুব দক্ষ নয়, তবে অনলাইনার হিসাবে:
var yesterday = new Date(new Date().setDate(new Date().getDate()-1));
উপরোক্ত তিনটি Date
অবজেক্ট তৈরি করে যা অপ্রয়োজনীয়ভাবে অপচয়যোগ্য। এটি এর সাথে একক ইনস্ট্যান্টেশনে হ্রাস করা যেতে পারে:
var yesterday = (function(){this.setDate(this.getDate()-1); return this})
.call(new Date)
বা, যদি আপনি পছন্দ করেন:
var yesterday = (function(d){ d.setDate(d.getDate()-1); return d})(new Date)
অথবা, আপনি যদি তীর ফাংশন সহ ES6 পছন্দ করেন:
let yesterday = ( d => new Date(d.setDate(d.getDate()-1)) )(new Date);
var yesterday = (function(d){ d.setDate(d.getDate()-1); return d})(new Date)
এটা চেষ্টা কর
var d = new Date();
d.setDate(d.getDate() - 1);
আশ্চর্যজনকভাবে সহজ ক্রস ব্রাউজার সমাধানের কোনও উত্তর পয়েন্ট নেই
গতকাল ঠিক একই সময়ে সন্ধান করতে:
var yesterday = new Date(Date.now() - 86400000); // that is: 24 * 60 * 60 * 1000
এটি যদি আপনি নির্ভরতা মুক্ত রাখতে চান, অন্যথায় আমি http://momentjs.com ব্যবহার করার পরামর্শ দেব
প্রশ্নটি সাধারণ করতে এবং অন্যান্য পৃথক গণনাগুলি ব্যবহার করতে:
var yesterday = new Date((new Date()).valueOf() - 1000*60*60*24);
এটি একটি পূর্ণসংখ্যার হিসাবে "এখন" এর মানের উপর ভিত্তি করে একটি নতুন তারিখের অবজেক্ট তৈরি করে যা একদিনের বিয়োগফলকে মিলিসেকেন্ডে ইউনিক্সের যুগের প্রতিনিধিত্ব করে।
দুই দিন আগে:
var twoDaysAgo = new Date((new Date()).valueOf() - 1000*60*60*24*2);
এক ঘন্টা আগে:
var oneHourAgo = new Date((new Date()).valueOf() - 1000*60*60);
new Date(Date.parse(new Date()) - 86400000)
। যদিও আমি ডেট.নো () পছন্দ করি তাই এর পরিবর্তে আমি চেষ্টা করব। এটি একটি অতিরিক্ত তারিখ সংরক্ষণ করবে।
আমি মুহুর্তের গ্রন্থাগারটি ব্যবহার করি এটি অত্যন্ত নমনীয় এবং সহজেই ব্যবহারযোগ্য।
তোমার ক্ষেত্রে:
let yesterday = moment().subtract(1, 'day').toDate();
subtract
পরিবর্তে আরও ভাল ব্যবহার করতে চানadd
new Date(new Date().setDate(new Date().getDate()-1))
//Create a date object using the current time
var now = new Date();
//Subtract one day from it
now.setDate(now.getDate()-1);
var today = new Date();
var yesterday1 = new Date(new Date().setDate(new Date().getDate() - 1));
var yesterday2 = new Date(Date.now() - 86400000);
var yesterday3 = new Date(Date.now() - 1000*60*60*24);
var yesterday4 = new Date((new Date()).valueOf() - 1000*60*60*24);
console.log("Today: "+today);
console.log("Yesterday: "+yesterday1);
console.log("Yesterday: "+yesterday2);
console.log("Yesterday: "+yesterday3);
console.log("Yesterday: "+yesterday4);
এটি গতকাল 00:00 মিনিটে নির্ভুলতার সাথে উত্পাদন করবে
var d = new Date();
d.setDate(d.getDate() - 1);
d.setTime(d.getTime()-d.getHours()*3600*1000-d.getMinutes()*60*1000);
d.setHours(0,0,0,0);
কৌতুক করবে
d.setHours(-1,0,0,0)
। এটি গতকালের তারিখটিতে ফিরে আসবে, তবে আপনি যে সময় চান তা হতে পারে না (23:00:00)
এটি ব্যবহার করে দেখুন, আমার জন্য কাজ করে:
var today = new Date();
var yesterday = new Date(today.setDate(today.getDate() - 1)); `
এটি আমার কাছে গতকাল তারিখের জন্য ফিরে আসে
var yesterday = new Date(); yesterday.setDate(today.GetDate() - 1)
যাতে আপনি আজ এবং গতকাল উভয়ই ব্যবহার করতে পারেন
এখানে একটি লাইন রয়েছে যা পাঠ্যটিতে ওয়াইওয়াইওয়াই-এমএম-ডিডি ফর্ম্যাটে গতকালের তারিখ পেতে এবং টাইমজোন অফসেট পরিচালনা করতে ব্যবহৃত হয়।
new Date(Date.now() - 1 * 86400000 - new Date().getTimezoneOffset() * 60000).toISOString().split('T')[0]
এটি যথাযথভাবে x দিন আগে ফিরে আসার তারিখে পরিবর্তিত হতে পারে। সময় ইত্যাদি অন্তর্ভুক্ত করা
console.log(Date())
console.log(new Date(Date.now() - 1 * 86400000 - new Date().getTimezoneOffset() * 60000).toISOString().split('T')[0]); // "2019-11-11"
console.log(new Date(Date.now() - 1 * 86400000 - new Date().getTimezoneOffset() * 60000).toISOString().split('.')[0].replace('T',' ')); // "2019-11-11 11:11:11"
// that is: [dates] * 24 * 60 * 60 * 1000 - offsetinmin * 60 * 1000 // this is: [dates] * 24 * 60 * 60 * 1000 - offsetinmin * 60 * 1000
আপনি যদি উভয়ই গতকালের জন্য তারিখ পেতে চান এবং সেই তারিখটিকে মানব পাঠযোগ্য বিন্যাসে ফর্ম্যাট 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 1 day
// 3. Format it
// 4. Output it
// ---------------------------------------------------------------------
document.body.innerHTML = DateHelper.format(DateHelper.addDays(new Date(), -1));
( এই ফিডলটিও দেখুন )
আপনি এই মুহুর্তগুলি ব্যবহার করতে পারেন এটি খুব সহায়ক আপনি এই লাইব্রেরির সাহায্যে অনেক কিছু অর্জন করতে পারেন।
বর্তমান সময়ের সাথে গতকাল তারিখ পান
moment().subtract(1, 'days').toString()
তারিখ শুরুর সাথে গতকাল তারিখ পান
moment().subtract(1, 'days').startOf('day').toString()
সীমা তারিখের সমস্যা সমাধান করুন (2020, 01, 01) -> 2019, 12, 31
var now = new Date();
return new Date(now.getMonth() - 1 === 0 ? now.getFullYear() - 1 : now.getFullYear(),
now.getDate() - 1 === 0 ? now.getMonth() - 1: now.getMonth(),
now.getDate() - 1);
"তারিখ.নো () - 86400000" দিবালোক সংরক্ষণের শেষ দিনে (যেদিনের 25 ঘন্টা থাকে) কাজ করবে না
আর একটি বিকল্প বন্ধ ব্যবহার করা হয়:
var d = new goog.date.Date();
d.add(new goog.date.Interval(0, 0, -1));
getDate
এটি মাসের দিন (যেমন: 1 - 31) হিসাবে ফেরত হিসাবে ব্যর্থ হবে তবে আসলেsetDate(0)
আগের মাসের শেষ দিনটিতে তারিখটি সেট করে। এটি কি সমস্ত ব্রাউজার জুড়ে কাজ করে?