অন্যটিকে Dateভেরিয়েবল বরাদ্দ করা একই উদাহরণের রেফারেন্সটি অনুলিপি করবে। এর অর্থ একটি পরিবর্তন করা অন্যটির পরিবর্তন করবে change
আমি কীভাবে আসলে Dateউদাহরণটি ক্লোন বা অনুলিপি করতে পারি ?
অন্যটিকে Dateভেরিয়েবল বরাদ্দ করা একই উদাহরণের রেফারেন্সটি অনুলিপি করবে। এর অর্থ একটি পরিবর্তন করা অন্যটির পরিবর্তন করবে change
আমি কীভাবে আসলে Dateউদাহরণটি ক্লোন বা অনুলিপি করতে পারি ?
উত্তর:
তারিখ অবজেক্টের getTime()পদ্ধতিটি ব্যবহার করুন , যা 1 জানুয়ারী 1970 সাল থেকে 00:00:00 ( যুগের সময় ) থেকে মিলিসেকেন্ডের সংখ্যা প্রদান করে :
var date = new Date();
var copiedDate = new Date(date.getTime());
সাফারি ৪-তে, আপনি আরও লিখতে পারেন:
var date = new Date();
var copiedDate = new Date(date);
... তবে আমি নিশ্চিত নই যে এটি অন্যান্য ব্রাউজারগুলিতে কাজ করে কিনা। (এটি আই 8 তে কাজ করছে বলে মনে হচ্ছে)।
Date.prototype.clone = function() { return new Date(this.getTime()); }; যা আপনি এরপরে ব্যবহার করতে পারবেনcopiedDate = date.clone();
copiedDate = new Date(date)আইই 6+ এ পদ্ধতির কাজ করে। ফায়ারফক্সে দুটি অপশন একই গতি।
new Date(date)একই হিসাবে new Date(date.getTime()), কারণ জাতীয় কল করার চেষ্টা করবে date.valueOf()যখন এটি একটি সংখ্যা হবে, এবং date.valueOf()হিসাবে একই date.getTime(), রেফারেন্স Date.valueOf Object.valueOf
new Date(date), ব্যবহার new Date(date.getTime()বা new Date(date.valueOf)পরিবর্তে ব্যবহার করবেন না । উদাহরণস্বরূপ toISOString()ফায়ারফক্সে উভয় তারিখ ব্যবহার করে উত্পন্ন হয় "2015-04-21T04:56:42.000Z"এবং "2015-04-21T04:56:42.337Z"।
এটিই পরিষ্কার পদ্ধতি
let dat = new Date()
let copyOf = new Date(dat.valueOf())
console.log(dat);
console.log(copyOf);
var orig = new Date();
var copy = new Date(+orig);
+জেএস বিশেষজ্ঞরা ছাড়া সেই যাদুটি কারও সাথে কী করছে তা আপনাকে ব্যাখ্যা করতে হবে ।
+চিহ্ন এখানে unaray অপারেটর। এর অর্থ new Date( Number(orig)) । এখানে আরও: বিকাশকারী.মোজিলা.আর.ইন-
সরলীকৃত সংস্করণ:
Date.prototype.clone = function () {
return new Date(this.getTime());
}
const cloneDate = d => new Date(d.getTime())।
আমি জানতে পারি যে এই সাধারণ নির্ধারকটিও কাজ করে:
dateOriginal = new Date();
cloneDate = new Date(dateOriginal);
তবে আমি জানি না এটি কতটা "নিরাপদ"। আই 7 এবং ক্রোম 19 এ সাফল্যের সাথে পরীক্ষা করা হয়েছে।
new Date(date), ব্যবহার new Date(date.getTime()বা new Date(date.valueOf)পরিবর্তে ব্যবহার করবেন না । উদাহরণস্বরূপ toISOString()ফায়ারফক্সে উভয় তারিখ ব্যবহার করে উত্পন্ন হয় "2015-04-21T04:56:42.000Z"এবং "2015-04-21T04:56:42.337Z"।