জাভাস্ক্রিপ্টে এখন থেকে কীভাবে এক বছর নির্ধারণ করবেন


111

আমি এখনকার তারিখ থেকে এক বছর নেওয়ার চেষ্টা করছি, এবং এটি কাজ করছে না।

জাতীয়:

var now = new Date();

var oneYr = new Date();
oneYr.setYear(now.getYear() + 1);
$("#yearFromNow").append(oneYr.toString());

var oneMonth = new Date();
oneMonth.setMonth(now.getMonth() + 1);
$("#monthFromNow").append(oneMonth.toString());

আউটপুট:

one mo. = Thu Dec 22 112 15:16:01 GMT-0500 (Eastern Standard Time)

one yr. = Sun Jan 22 2012 15:16:01 GMT-0500 (Eastern Standard Time)

বছর আছে Dec 22 112- ?? মাসটি সঠিকভাবে প্রদর্শিত হচ্ছে Jan 22 2012

আপনি যদি এটির সাথে টিঙ্কার করতে চান তবে http://jsbin.com/alezaj/edit#javascript,html,live । এটি ক্রোম এবং ফায়ারফক্সে রয়েছে।

ধন্যবাদ!

উত্তর:


88

এর getFullYear()পরিবর্তে আপনার ব্যবহার করা উচিত getYear()getYear()আসল বছর বিয়োগ 1900 প্রদান করে (এবং এটি মোটামুটি অকেজো)।

সুতরাং বর্তমান মুহূর্ত থেকে ঠিক এক বছর চিহ্নিত করার তারিখটি হবে:

var oneYearFromNow = new Date();
oneYearFromNow.setFullYear(oneYearFromNow.getFullYear() + 1);

দ্রষ্টব্য যে আপনি ২৯ শে ফেব্রুয়ারিতে তারিখটি সমন্বয় করা হবে।

একইভাবে, আপনি এখন থেকে getMonth()এবং এক মাসের মধ্যে একটি তারিখ পেতে পারেন setMonth()। আপনি যদি ডিসেম্বরে এটি করেন তবে চলতি বছর থেকে পরের বছরে "রোলিং ওভার" সম্পর্কে আপনার চিন্তা করার দরকার নেই; তারিখটি স্বয়ংক্রিয়ভাবে সমন্বয় করা হবে। একই মাসের মাসের জন্য getDate()এবং মাধ্যমে যায় setDate()


1
যে কেউ লিপ বছরের সাথে কীভাবে ডিল করছে তা ভাবতে, আমি এটি ফায়ারফক্স কনসোলে করেছি ... >> x = নতুন তারিখ ('2000-02-29') -> তারিখ 2000-02-29T00: 00: 00.000Z >> x.setYear (2001) -> 983404800000 >> x.toLocale Format ('% d-% b-% Y') -> "01-মার্চ 2001"
ইভান

29
এই হাসিখুশি নয়? জাভাস্ক্রিপ্টে এখন থেকে এক বছর তারিখ পেতে একটি লিখতে হবে: new Date(new Date().setFullYear(new Date().getFullYear() + 1))
লুকাস এম

205

এটি Dateভবিষ্যতে ঠিক এক লাইন দিয়ে ঠিক এক বছর তৈরি করবে । প্রথমে আমরা fullYearএকটি থেকে এটি পাই new Date, এটি বৃদ্ধি করি, এটি এ এর ​​বছর হিসাবে সেট করি new Date। আপনি হয়ত ভাবতে পারেন যে আমরা সেখানেই হয়ে যাব, তবে আমরা যদি থামিয়ে দিয়েছিলাম তবে এটি একটি টাইমস্ট্যাম্প ফিরে আসবে, কোনও Dateবস্তু নয় তাই আমরা পুরো জিনিসটি একটি Dateকনস্ট্রাক্টরে আবৃত করি ।

new Date(new Date().setFullYear(new Date().getFullYear() + 1))

13
setYear()অবচয় করা হয়েছে , setFullYear()পরিবর্তে ব্যবহার করা উচিত।
tsauerwein

1
বরাদ্দ দেওয়ার কোনও মধ্যবর্তী ভেরিয়েবল সহ একটি লাইনার! অসাধারণ!
দ্য উথারসাইড

1
এটি ঘন্টা, মিনিট এবং সেকেন্ড পরিচালনা করবে না, এটি বর্তমান সময়ে সেট করা হবে
ধীররাজ

32

setYear()অবচয় হিসাবে , সঠিক রূপটি হ'ল:

// plus 1 year
new Date().setFullYear(new Date().getFullYear() + 1)
// plus 1 month
new Date().setMonth(new Date().getMonth() + 1)
// plus 1 day
new Date().setDate(new Date().getDate() + 1)

সমস্ত উদাহরণ ইউনিক্স টাইমস্ট্যাম্পটি ফেরত দেয়, আপনি যদি Dateঅবজেক্ট পেতে চান - কেবল এটির সাথে অন্যটি মুড়ে রাখুনnew Date(...)


6

এই পৃষ্ঠায় এবং এখানে কয়েকটি উত্তর ব্যবহার করে , আমি আমার নিজের উত্তর নিয়ে এসেছি কারণ এই উত্তরগুলির কোনওটিই আমার পক্ষে পুরোপুরি সমাধান করে নি।

এখানে এটির কর্কস

var startDate = "27 Apr 2017";
var numOfYears = 1;
var expireDate = new Date(startDate);
expireDate.setFullYear(expireDate.getFullYear() + numOfYears);
expireDate.setDate(expireDate.getDate() -1);

এবং এখানে এএ জেএসফিডাল যার কার্যকরী উদাহরণ রয়েছে: https://jsfiddle.net/wavesailor/g9a6qqq5/


1
মেয়াদোত্তীর্ণ তারিখ কী? () - 1 এর জন্য?
উজার


1

অন্যরা যেমন পোস্ট করেছে তেমন সেটফুল্লিয়ার ব্যবহার করুন তবে সচেতন থাকুন এটি কোনও টাইমস্ট্যাম্পের মান দেয় যা কোনও তারিখের অবজেক্ট নয়। প্রোটোটাইপের মাধ্যমে কার্যকারিতা যুক্ত করা ইমোও একজন ভাল প্রার্থী। এটি আমাদের নিম্নলিখিত প্যাটার্নে নিয়ে যায়:

Date.prototype.addYears = function(n) {
    var now = new Date();
    return new Date(now.setFullYear(now.getFullYear() + n));
};

console.log('Year from now is', new Date().addYears(1));

0

খুব সহজ উপায়ে। এই কোড ব্যবহার করুন।

// define function 
function nextYearDate(date1) {
    var date2 = new Date(date1);
    var date3 = date2.setDate(date2.getDate() - 1);
    var date = new Date(date3);
    var day = date.getDate();
    var month = date.getMonth()+1;
    var year = date.getFullYear()+1;
    var newdate = year + '-' + (month < 10 ? '0' : '') + month + '-' + (day < 10 ? '0' : '') + day;
    $("#next_date").val(newdate);
}
// call function.
<input type="date" name="current_date" id="current_date" value="" onblur="nextYearDate(this.value);" />

<input type="date" name="next_date" id="next_date" value="" onblur="nextYearDate(this.value);" />

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