আপনি কীভাবে জাভাস্ক্রিপ্টে টাইমস্ট্যাম্প পাবেন?


4012

আমি কীভাবে জাভাস্ক্রিপ্টে টাইমস্ট্যাম্প পেতে পারি?

ইউনিক্স টাইমস্ট্যাম্পের অনুরূপ কিছু , যা একটি একক সংখ্যা যা বর্তমান সময় এবং তারিখের প্রতিনিধিত্ব করে। হয় সংখ্যা বা স্ট্রিং হিসাবে।


জেএস-তে একটি 64 বিবিট টাইমস্ট্যাম্প কিভাবে পাবেন?
আলেকজান্ডার মিলস

@ আলেকজান্ডারমিলস যেহেতু জাভাস্ক্রিপ্ট 64 বিট পূর্ণসংখ্যার সমর্থন করে না, আপনাকে দুটি 32-বিট পূর্ণসংখ্যার পেতে হবে। অন্য একটি প্রশ্ন জিজ্ঞাসা করুন।
wizzwizz4

উত্তর:


4907

সংক্ষিপ্ত এবং স্নাজি:

+ new Date()

অবিচ্ছিন্ন অপারেটরের মতো বস্তুটিতে পদ্ধতিটি plusট্রিগার করে এবং এটি টাইমস্ট্যাম্পটি দেয় (কোনও পরিবর্তন ছাড়াই)।valueOfDate

বিবরণ:

প্রায় সমস্ত বর্তমান ব্রাউজারগুলিতে আপনি Date.now()ইউটিসি টাইমস্ট্যাম্পটি মিলি সেকেন্ডে পেতে ব্যবহার করতে পারেন ; এটির একটি উল্লেখযোগ্য ব্যতিক্রম IE8 এবং তার আগের ( সামঞ্জস্যতার টেবিলটি দেখুন )।

আপনি সহজেই এটির জন্য ঝাঁকুনি তৈরি করতে পারেন, যদিও:

if (!Date.now) {
    Date.now = function() { return new Date().getTime(); }
}

সেকেন্ডে টাইমস্ট্যাম্প পেতে , আপনি এটি ব্যবহার করতে পারেন:

Math.floor(Date.now() / 1000)

অথবা বিকল্পভাবে আপনি ব্যবহার করতে পারেন:

Date.now() / 1000 | 0

যা সামান্য দ্রুত হওয়া উচিত, তবে কম পাঠযোগ্য (এটিও এই উত্তরটি দেখুন )।

আমি Date.now()(সামঞ্জস্য শিম সহ) ব্যবহার করার পরামর্শ দেব । এটি কিছুটা ভাল কারণ এটি খাটো এবং একটি নতুন Dateঅবজেক্ট তৈরি করে না । তবে, আপনি যদি শিম এবং সর্বাধিক সামঞ্জস্যতা না চান, আপনি মিলিসেকেন্ডে টাইমস্ট্যাম্প পেতে "পুরানো" পদ্ধতিটি ব্যবহার করতে পারেন :

new Date().getTime()

যা আপনি এর পরে সেকেন্ডে রূপান্তর করতে পারবেন:

Math.round(new Date().getTime()/1000)

এবং আপনি valueOfউপরোক্ত পদ্ধতিটিও ব্যবহার করতে পারেন :

new Date().valueOf()

মিলিসেকেন্ডে টাইমস্ট্যাম্প

var timeStampInMs = window.performance && window.performance.now && window.performance.timing && window.performance.timing.navigationStart ? window.performance.now() + window.performance.timing.navigationStart : Date.now();

console.log(timeStampInMs, Date.now());


11
আর একটি উল্লেখযোগ্য ব্যতিক্রম node.js. আমি নোডে একই কাজ করতে গুগল থেকে এখানে এসেছি
মিলান বাবুস্কোভ

57
না Date.now() / 1000 | 0ভোগা বছর 2038 সমস্যা ? new Date('Jan 1, 2039') / 1000 | 0 == -2117514496
জেংকেভ

3
বা এমনকি, / ণ Math.floor .. ব্যবহার W~~(Date.now() / 1000)
Matej

14
@ মিলানবাবুউকভ তবে নোড.জেএস সমর্থন করেDate.now()
অরেঞ্জডগ

51
যদিও +new Dataচালাক, এটি অন্য দেবগণের দ্বারা পঠনযোগ্য নয়। Date.now()পরিষ্কার এবং এটি নিশ্চিত হচ্ছে যে কী ঘটছে তা প্রত্যেকে জানে।
হ্যারি স্যাডলার

513

আমি এটি পছন্দ করি, কারণ এটি ছোট:

+new Date

আমি এটিও পছন্দ করি, কারণ এটি কেবল সংক্ষিপ্ত এবং আধুনিক ব্রাউজারগুলির সাথে সামঞ্জস্যপূর্ণ এবং 500 জনেরও বেশি লোক ভোট দিয়েছেন যে এটি আরও ভাল:

Date.now()

636
এই বিকল্পটি একটি খারাপ ধারণা। এটি সহজেই উপেক্ষা করা হয়, টাইপোর মতো দেখায় এবং বাস্তবে কোনও ভাষার পার্শ্ব-প্রতিক্রিয়াটির উপর নির্ভর করে। আমি খারাপ কোড দেখতে পাচ্ছি।
inanutshellus

10
@ বিলি আমি এটি স্মরণ করার সময়, আমি দুটি প্রস্তাবিত সমাধানগুলিতে টাইমস্ট্যাম্পটি প্রতিটি 1M বার গণনা করেছি এবং গড় রানটাইম গণনা করেছি। উভয় ব্রাউজারে গেটটাইম দ্রুত হওয়ার সাথে সাথে আমি এটি ফায়ারফক্স এবং ক্রোমে চালিয়েছি। এটি বলেছিল, যদিও এটি (প্রান্তিক) ধীরে ধীরে আমি বেছে নেব new Date().getTime()। ভাগ্যক্রমে আমার জন্য, দ্রুত সমাধানটি ইতিমধ্যে স্পষ্ট সমাধান!
inanutshellus

11
@ ফ্যাব্রেসিওম্যাটির সাথে একমত অ্যানারি অপারেটর আচরণটি প্রাথমিক হতে পারে না তবে আপনি যদি এটির প্রতিশ্রুতি না দিয়ে থাকেন তবে প্রচুর দল কার্যকরভাবে কার্যকর হতে পারবেন বলে আশা করবেন না।
জেসন টি ফেদারিংহাম

9
@ নিক্লাস এর কারণ আপনি এটিকে অন্য স্ট্রিংয়ের সাথে যুক্ত করছেন। সেক্ষেত্রে new Date().toString()বলা হয়।
কিরব

7
কৌতূহলের বাইরে +অপারেটর কী করছে এটি স্ট্রিংয়ের মতো করে আসতে?
zadubz

275

জাভাস্ক্রিপ্ট যুগের পর থেকে মিলিসেকেন্ডের সংখ্যা নিয়ে কাজ করে যেখানে বেশিরভাগ অন্যান্য ভাষা সেকেন্ডের সাথে কাজ করে। আপনি মিলিসেকেন্ডের সাথে কাজ করতে পারেন তবে আপনি পিএইচপি বলতে কোনও মান পাস করার সাথে সাথেই পিএইচপি নেটিভ ফাংশনগুলি ব্যর্থ হবে। সুতরাং নিশ্চিত হতে যে আমি সর্বদা সেকেন্ড ব্যবহার করি, মিলিসেকেন্ড নয়।

এটি আপনাকে একটি ইউনিক্স টাইমস্ট্যাম্প দেবে (সেকেন্ডে):

var unix = Math.round(+new Date()/1000);

এটি আপনাকে যুগের পর থেকে মিলিসেকেন্ডগুলি দেবে (ইউনিক্স টাইমস্ট্যাম্প নয়):

var milliseconds = new Date().getTime();

4
পিএইচপি মিলিসেকেন্ডগুলির সাথে সূক্ষ্মভাবে কাজ করা উচিত, কারণ এটি মাইক্রোটাইম () ফাংশনের সাথে সেগুলি নিজেই ব্যবহার করে।
নিকো বার্নস

5
মাইক্রোটাইম () উপস্থিত থাকাকালীন, পিএইচপি-র বেশিরভাগ সময় সম্পর্কিত ফাংশনগুলি টাইমস্ট্যাম্পটি সেকেন্ডে হবে এবং মিলিসেকেন্ড নয় বলে আশা করে। আরও কী মাইক্রোটাইম () একটি ফ্লোট ফেরত দেয় (যদি আপনি সত্যবাদী হয়ে যান) যেখানে দশমিক অংশটি সেকেন্ডের (মাইক্রোসেকেন্ডের সাথে সঠিক) ভগ্নাংশ হয়, যখন নতুন তারিখ () .গেটটাইম () এমন একটি পূর্বে ফিরে আসে যেখানে এটি কেবলমাত্র মিলি সেকেন্ড গণনা করে যুগের। উদাহরণস্বরূপ (পিএইচপি) আপনি যদি ফ্লোর (মাইক্রোটাইম (সত্য)) কল করতে পারেন তবে এটি কার্যকরভাবে কলিং টাইম () যা সেকেন্ডে হবে এবং মাইক্রো বা মিলিসেকেন্ড নয় same উপরে হিসাবে 1000 দ্বারা ভাগ করা এটির সহজ সমাধান।
গ্রেগজ

49
বৃত্তাকার পরিবর্তে মেঝে ব্যবহার করুন। 700 এমএস এখনও পুরো দ্বিতীয় নয়
আনগমেট

Unix timestampবনাম Seconds since the Epoch। এই দুটি কি একই জিনিস বোঝার কথা নয়?
মুদিগা এজেনাভি

147
var time = Date.now || function() {
  return +new Date;
};

time();

6
কেন || অপারেটর? ডেট.নো () সমস্ত ব্রাউজারে উপলব্ধ না?
ক্রিস নো

67
ডেট.নো () জাভাস্ক্রিপ্ট ১.৫ থেকে এসেছে, এবং আইই 8 তে সমর্থিত নয়
সেরেন ল্যাভবার্গ

9
ডেট.নো পদ্ধতি সমর্থন করার জন্য আপডেট করা হয়নি এমন ইঞ্জিনগুলি নিম্নলিখিত শিম ব্যবহার করে এটির অভাবে কাজ করতে পারে: যদি (! তারিখ.নো)) তারিখ.নো = এখন ফাংশন () {রিটার্ন + (নতুন তারিখ); }; }
পরীক্ষিত আরনসন

বা(Date.now||function(){return +new Date})();

130

আমি এই উত্তরে বর্ণনা সহ একাধিক সমাধান সরবরাহ করি। কিছু অস্পষ্ট থাকলে প্রশ্ন জিজ্ঞাসা করতে নির্দ্বিধায়
PS: দু: খজনকভাবে কেউ ক্রেডিট না দিয়ে শীর্ষ উত্তরটিতে এটি একীভূত করলেন।


দ্রুত এবং নোংরা সমাধান:

Date.now() /1000 |0

সতর্কতা : এটি 2038 এ ভাঙ্গতে পারে এবং আপনি যাদুটি করতে পারলে negativeণাত্মক সংখ্যাগুলি ফিরে আসতে পারে|0 । ততক্ষণে Math.floor()তার পরিবর্তে ব্যবহার করুন

Math.floor() সমাধান:

Math.floor(Date.now() /1000);

এই উত্তরের নীচে দেওয়া মন্তব্যগুলি থেকে ডেরেক 朕 會 by দ্বারা কিছু স্নিগ্ধ বিকল্প নেওয়া হয়েছে:

new Date/1e3|0

পলিফিল Date.now()কাজ করতে:

আইই তে এটি কাজ করার জন্য আপনি এটি করতে পারেন ( এমডিএন থেকে পলিফিল ):

if (!Date.now) {
    Date.now = function now() {
        return new Date().getTime();
    };
}

আপনি যদি সপ্তাহের বছর / দিন / দিবালোক সংরক্ষণের সময় যত্ন না করেন তবে আপনি এটি কেড়ে নিতে পারেন এবং এটি 2038 এর পরে ব্যবহার করতে পারেন:

var now = (function () {
    var year = new Date(new Date().getFullYear().toString()).getTime();
    return function () {
        return Date.now() - year
    }
})();

এটি দেখতে কেমন হবে তার কিছু আউটপুট:

new Date()
Thu Oct 29 2015 08:46:30 GMT+0100 (Mitteleuropäische Zeit )
new Date(now())
Thu Oct 29 1970 09:46:30 GMT+0100 (Mitteleuropäische Zeit )

অবশ্যই এটি দিবালোকের সাশ্রয়ের সময় ভেঙে দেবে তবে আপনি কী তৈরি করছেন তার উপর নির্ভর করে আপনার যদি টাইমস্ট্যাম্পগুলিতে বাইনারি ক্রিয়াকলাপের প্রয়োজন হয় 32 এর পরে টাইমস্ট্যাম্পগুলি 2038 এ ভাঙ্গবে।

এটি নেতিবাচক মানগুলিও ফিরিয়ে দেবে তবে কেবলমাত্র সেই পিসির ব্যবহারকারী আপনি নিজের কোডটি চালাচ্ছেন যদি তার পিসির ঘড়িটি কমপক্ষে বছরের বছরের কমপক্ষে 31 ডিসেম্বর পরিবর্তন করে।


কোডটি প্রথমে কখন চালিত হয়েছিল সেই বিন্দু থেকে আপনি যদি আপেক্ষিক সময়টি জানতে চান তবে আপনি এই জাতীয় কিছু ব্যবহার করতে পারেন:

var relativeTime = (function () {
    var start = Date.now();
    return function () {
        return Date.now() - start
    }
})();

আপনি jQuery ব্যবহার করছেন এমন ক্ষেত্রে আপনি jQuery এর ডক্সে$.now() বর্ণিত হিসাবে ব্যবহার করতে পারেন যা পলিফিলকে অচল করে দেয় যেহেতু অভ্যন্তরীণভাবে একই কাজ করে:$.now()(new Date).getTime()

আপনি যদি jQuery এর সংস্করণ সম্পর্কে কেবল খুশি হন তবে আমি নিজেই এটি খুঁজে পাইনি বলে এই উত্তরটিকে সমর্থন করে।


এখন কি |0করে তার একটি ছোট ব্যাখ্যা :

সরবরাহ করে |, আপনি দোভাষীকে বাইনারি OR অপারেশন করতে বলুন tell বিট ক্রিয়াকলাপগুলির জন্য নিখুঁত সংখ্যা প্রয়োজন যা দশমিক ফলাফলকে Date.now() / 1000পূর্ণসংখ্যায় পরিণত করে turns

এই রূপান্তরকালে, দশমিকগুলি সরিয়ে ফেলা হয়, ফলে Math.floor()কম কোড ব্যবহার করা হলেও ব্যবহার একই ফলাফল হয় ।

সতর্ক হওয়া সত্ত্বেও: এটি একটি 64 বিট ডাবলকে 32 বিট পূর্ণসংখ্যায় রূপান্তর করবে। বিপুল সংখ্যক লোকের সাথে ডিল করার সময় এটি তথ্য ক্ষতির কারণ হবে। টাইমস্ট্যাম্পগুলি 32 বিটের পূর্ণসংখ্যার ওভারফ্লোর কারণে 2038 এর পরে ভেঙে যাবে।


Date.nowএই লিঙ্কটি অনুসরণ সম্পর্কে আরও তথ্যের জন্য : Date.now()@ এমডিএন


12
| 0 ম্যাথ.ফ্লুর () এর সাথে সমান কারণ এটি কিছুটা অপারেশন (এটি ফ্লোটের সাথে কাজ করে না)। এটি ম্যাথ.ফ্লুর () এর চেয়ে বেশি দ্রুততর কারণ এটি কোনও ফাংশন কল নয়, এটি একটি নেটিভ জাভাস্ক্রিপ্ট অপারেটর।
গটজেড


@ খ্রিস্টোফ আপনি কী ভাবেন? আইই ফিক্সের কারণে? সেই অংশটি বাদে এর বেশ সহজ এবং কাস্টমাইজড আমি মনে করি।
গটজ

5
পলিফিল / শিমগুলি জটিল নয়। তারা 9 টি বিভিন্ন ব্রাউজার সংস্করণ এবং শিল্পকে তারা কোন মানক গ্রহণ করে এবং কোনটি তারা ঠিক তৈরি করে তা বেছে নেওয়ার সিদ্ধান্ত নেয়াকে সমর্থন করার ফলস্বরূপ।
রলেমন

8
রেফারেন্সের জন্য আপনি সবচেয়ে কমপ্যাক্ট পেতে পারেন new Date/1e3|0
ডেরেক 朕 會 功夫


61

টাইমস্ট্যাম্প পেতে jQuery তার নিজস্ব পদ্ধতি সরবরাহ করে :

var timestamp = $.now();

(এটি ছাড়াও কেবল (new Date).getTime()অভিব্যক্তি কার্যকর করে)

রেফ: http://api.jquery.com/jQuery. હવે/


2
jQuery বিভিন্ন জাভাস্ক্রিপ্ট এপিআই-এর সাথে যে কোনও ক্রস-ব্রাউজারের সামঞ্জস্যতার সমস্যাগুলির যত্ন নেবে।
হেনরি হেলিন

4
@ ভিজিওএন আমি নোড.জেএস-তে টাইমস্ট্যাম্প করার একটি উপায় অনুসন্ধান করেছি আমি স্ট্যাকওভারফ্লোতে একটি জাভাস্ক্রিপ্ট প্রশ্ন পেয়েছি এবং আমি jQuery এ একটি উত্তর পেয়েছি, যা সাহায্য করে না। জাভাস্ক্রিপ্ট এবং jQuery দুটি জিনিস। আমরা যদি এখানে প্রতিটি জাভাস্ক্রিপ্ট কাঠামোর উত্তর দিয়ে থাকি তবে আমরা সম্ভবত অসীম সংখ্যার উত্তর দিয়ে শেষ করি যা স্ট্যাকওভারফ্লোতে প্রশ্ন / এ এর ​​দর্শনের বিরুদ্ধে। এছাড়াও: i.stack.imgur.com/Ledgt.gif : ডি
পিয়েরে আরলাড

5
@ ভিসিওন কে বলেছিলেন যে ব্রাউজারে জাভাস্ক্রিপ্ট ব্যবহার করা দরকার?
পিয়ের আরলাড

5
@ পিয়ারআরলাউড এবং কে বলেছিলেন যে এই প্রশ্নটি কেবল নোডজেএস নিয়ে?
ভিজিওন

2
@ কিংরাইডার এর কোনও দরকার নেই কারণ parseIntফলাফলটি সর্বদা একটি হয় Number
ভিজিওন

46

console.log(new Date().valueOf()); // returns the number of milliseconds since the epoch


4
এটি সমান +new Date.. :)
19

8
শুধু করুনDate.now()
অরল্যান্ডো

@ অরল্যান্ডো অন্য উত্তরগুলি দেখুন, এখন (ইস্যু সহ) সমস্যাটি ব্রাউজার সমর্থন
ক্রিস্টোফ

@ ক্রিস্টোফ কেবল একটি সরল পলফিল, বিকাশকারী.মোজিলা.আর.ইন.ইউএস
অরল্যান্ডো

4
@ অরল্যান্ডো ঠিক, ডেট.নু () করবেন না
ক্রিস্টোফ

43

অন্যান্য বিকল্পগুলির পাশাপাশি, আপনি যদি একটি ডেটফর্ম্যাট আইএসও চান তবে আপনি এটি সরাসরি পেতে পারেন get

console.log(new Date().toISOString());


এটি কোনও পূর্ণসংখ্যার সাথে ফিরে আসে না এমন প্রশ্নের জন্য জিজ্ঞাসা করা হয়!
alexventuraio

স্ট্রিং ডেটফর্ম্যাট আইএসও সহ অ্যালেক্সভেন্তুরা আপনি একটি তারিখ অবজেক্ট ইনস্ট্যান্ট করতে পারেন এবং তাদের মধ্যে বিয়োগ করতে পারেন। উদাহরণস্বরূপ:new Date("2017-05-04T07:11:28.940Z") - new Date("2017-05-04T07:11:14.092Z")
Joaquinglezsantos

41

কেবল যোগ করতে এখানে জাভাস্ক্রিপ্টে টাইমস্ট্যাম্প স্ট্রিং ফিরিয়ে ফাংশন। উদাহরণ: 15:06:38 অপরাহ্ণ

function displayTime() {
    var str = "";

    var currentTime = new Date()
    var hours = currentTime.getHours()
    var minutes = currentTime.getMinutes()
    var seconds = currentTime.getSeconds()

    if (minutes < 10) {
        minutes = "0" + minutes
    }
    if (seconds < 10) {
        seconds = "0" + seconds
    }
    str += hours + ":" + minutes + ":" + seconds + " ";
    if(hours > 11){
        str += "PM"
    } else {
        str += "AM"
    }
    return str;
}

11
ওপি একটি পূর্ণসংখ্যা টাইমস্ট্যাম্প সম্পর্কে জিজ্ঞাসা করছে; এটি সেই সময়ের একটি স্ট্রিং প্রতিনিধিত্ব।
ব্র্যাড কোচ

3
"ইউনিক্সের টাইমস্ট্যাম্পের সমান, এটিই হ'ল একক সংখ্যা যা বর্তমান সময়ের প্রতিনিধিত্ব করে"
ব্র্যাড কোচ

সময় প্রদর্শনের জন্য আমার কাছে একটি কোড ছিল তবে অস্ট্রেলিয়ার কিছু অংশ পুরো তারিখ দেখিয়েছিল, এই স্ক্রিপ্টটি আমাকে এটিকে ভেঙে ডানদিকে প্রদর্শন করতে সহায়তা করেছিল। (
এটির

40

তারিখ , জাভাস্ক্রিপ্টে একটি নেটিভ অবজেক্ট হল সময় সম্পর্কে সমস্ত ডেটা পাওয়ার উপায়।

জাভাস্ক্রিপ্টে সাবধান থাকুন টাইমস্ট্যাম্প ক্লায়েন্ট কম্পিউটার সেটের উপর নির্ভর করে তাই এটি 100% সঠিক টাইমস্ট্যাম্প নয়। সেরা ফলাফল পেতে আপনার সার্ভার-সাইড থেকে টাইমস্ট্যাম্প নেওয়া দরকার ।

যাইহোক, আমার পছন্দের উপায়টি ভ্যানিলা ব্যবহার করছে। এটি জাভাস্ক্রিপ্টে এটি করার একটি সাধারণ উপায়:

Date.now(); //return 1495255666921

এমডিএন-তে এটি নীচে উল্লেখ করা হয়েছে:

ডেট.নো () পদ্ধতিটি 1 জানুয়ারী 1970 সাল থেকে 00:00:00 ইউটিসি থেকে বিভক্ত মিলিসেকেন্ডগুলির সংখ্যা প্রদান করে।
যেহেতু এখন () হ'ল তারিখের একটি স্থিতিশীল পদ্ধতি, আপনি সর্বদা এটি ডেট.নো () হিসাবে ব্যবহার করেন।

আপনি যদি ES5 এর নীচে কোনও সংস্করণ ব্যবহার করেন তবে এটি কাজ করে Date.now();না এবং আপনার ব্যবহারের প্রয়োজন:

new Date().getTime();

29

একটি আমি এখনও দেখিনি

Math.floor(Date.now() / 1000); // current time in seconds

আর একটি যা আমি এখনও দেখিনি

var _ = require('lodash'); // from here https://lodash.com/docs#now
_.now();

1
Date.now() /1000 |0একই কাজ করে এবং এর আগে উত্তর দেওয়া হয়েছে
গটজ

3
আমরা হব. আমি অবশ্যই Math.floor()এটির মধ্যে সম্পাদনা করেছি তবে কেবল এটি স্পষ্ট করতে পারি যে এটির মতো প্রভাব রয়েছে |0। আমি আপনাকে বা কিছু ক্ষতি করতে চাই না। আমি আপনাকে কেবল এটিই বলতে চেয়েছিলাম যে কোনওভাবে আপনার উত্তর ইতিমধ্যে বিদ্যমান। সমস্ত প্রদত্ত উত্তরগুলি দেখে সেখানে কিছু রয়েছে যে কোনও উপায়ে নোটিশ মেঝে।
গটজেড

আমি মনে করি কেবল লোড্যাশ লাইব্রেরিটি কেবল ব্যবহারের _.now()জন্য আমদানি করা কিছুটা ওভারকিল। আমি আপনাকে কেবলমাত্র লোড্যাশ কার্যকারিতা আমদানি করার পরামর্শ দিচ্ছি (এই ক্ষেত্রে, _.নো () এনপিএম তে ) তবে তারা কেবল তাদের ব্যবহারের পক্ষে তাদের প্যাকেজটি অবমূল্যায়ন করেছে Date.now()
এমজিথোমাস99

27

Date.getTime()পদ্ধতি একটু খামচি সঙ্গে ব্যবহার করা যেতে পারে:

গেটটাইম পদ্ধতিতে ফিরে পাওয়া মান হ'ল 1 জানুয়ারী 1970 00:00:00 ইউটিসি থেকে মিলিসেকেন্ডের সংখ্যা।

ইউনিক্স টাইমস্ট্যাম্পটি পেতে floorপ্রয়োজন হলে 1000 দ্বারা ফলাফল ভাগ করুন :

(new Date).getTime() / 1000

Date.valueOf()পদ্ধতি বৈশিষ্ট্যগুলি সমতূল্য Date.getTime(), যার ফলে এটা সম্ভব তারিখ বস্তুর উপর গাণিতিক অপারেটর ব্যাবহার অভিন্ন ফলাফল অর্জন করা। আমার মতে, এই পদ্ধতির পাঠযোগ্যতা প্রভাবিত করে।


7
: আপনি প্রথম বন্ধনী প্রয়োজন হবে নাnew Date().getTime() / 1000
Ry-

14
আপনার এগুলির দরকার নেই তবে তারা কোডটি আরও পঠনযোগ্য (আইএমএইচও) করে। স্বাদের বিষয়টি আমার ধারণা।
jhndodo

আপনার এমনকি ()পরে প্রয়োজন নেই new Dateএবং .getTime()যেহেতু /যে কোনও উপায়ে তারিখ অবজেক্টটিকে কোনও সংখ্যায় ফেলে দেবেন।
ডেরেক 朕 會 功夫

25

কোডটি Math.floor(new Date().getTime() / 1000)ছোট করা যেতে পারে new Date / 1E3 | 0

সরাসরি অনুরোধ getTime()এড়ানো এবং ফাংশনটির | 0প্রতিস্থাপন হিসাবে ব্যবহার করতে বিবেচনা করুন Math.floor()। এটি মনে রাখার জন্যও ভাল যে এর 1E3জন্য একটি ছোট সমতুল্য 1000(বড় হাতের তুলনায় E ছোট হাতের চেয়ে 1E3ধ্রুবক হিসাবে ইঙ্গিত করতে পছন্দ করা হয় )।

ফলস্বরূপ আপনি নিম্নলিখিত পেতে:

var ts = new Date / 1E3 | 0;

console.log(ts);


3
@dchest "Math.floor(new Date().getTime()/1000)".length == 37; "new Date/1E3|0".length == 14; 37 -14 = 23 বাইট;
ভ্যালেন্টিন পোডকামেনেনি

পুনঃটুইট করেছেন বিভাগ সাইন, 1E3, পাইপ বা শূন্য? আমার উত্তর উপর কোড স্নিপেট দেখুন দয়া করে।
ভ্যালেন্টিন পোডকামেন্নি

1
@ ভ্যালেনটিন আপনি প্রায় কোনও সুবিধা ছাড়াই সহজ কোডটি ছোট / জটিল করছেন। আমি এটা করতে পয়েন্ট দেখতে পাচ্ছি না। আমরা কোড গল্ফে নেই!
ম্যাথিউ

@ ম্যাথিউইচর্বোনিয়ার, জটিল কিছু নেই, কেবলমাত্র বেসিক সিনট্যাক্স এবং অপারেটরগুলি। মূল বিষয় হ'ল সংক্ষিপ্ত, পরিষ্কার এবং বোধগম্য কোডটি লিখতে।
ভ্যালেন্টিন পোডকামেন্নি

2
@Valentin দয়া করে আমাকে কিভাবে ব্যাখ্যা প্রতিস্থাপন Math.floor()দ্বারা |0এই কোড "স্পষ্ট এবং বোধগম্য" করছে। প্রতিস্থাপন 1000করে 1 বাইট সংরক্ষণ করার বিন্দুটি কী তা আমাকে ব্যাখ্যা করুন 1E3। এটি হাস্যকর। আমি খারাপ কোড দেখতে পাচ্ছি।
ম্যাথিউ

24

কর্মক্ষমতা

আজ - 2020.04.23 আমি নির্বাচিত সমাধানগুলির জন্য পরীক্ষাগুলি সম্পাদন করি। আমি ক্রোম 81.0, সাফারি 13.1, ফায়ারফক্স 75.0 এ ম্যাকওস হাই সিয়েরা 10.13.6 তে পরীক্ষা করেছি

উপসংহার

  • সমাধান Date.now()(ই) ক্রোম এবং সাফারিতে দ্রুত এবং ফায়ারফক্সে দ্বিতীয় দ্রুত এবং দ্রুত ক্রস ব্রাউজার সমাধানের জন্য এটি সম্ভবত সেরা পছন্দ
  • সলিউশন performance.now()(জি), যা অবাক করে দেয় তা ফায়ারফক্সের অন্যান্য সমাধানগুলির তুলনায় 100x এর চেয়ে বেশি দ্রুত তবে ক্রোমের চেয়ে ধীরতম
  • সলিউশন সি, ডি, এফ সমস্ত ব্রাউজারে বেশ ধীর

এখানে চিত্র বর্ণনা লিখুন

বিস্তারিত

ক্রোমের জন্য ফলাফল

এখানে চিত্র বর্ণনা লিখুন

আপনি এখানে আপনার মেশিনে পরীক্ষা করতে পারেন

পরীক্ষায় ব্যবহৃত কোড নীচে স্নিপেটে উপস্থাপন করা হয়েছে


performance.now()স্ট্যাম্পের ক্ষেত্রে এটি সবচেয়ে নির্ভুল বলে মনে করা হচ্ছে আপনি যদি পরীক্ষা করেন তবে আমি আগ্রহী ।
স্যামসন দ্য ব্রাভ

@ স্যামসন দ্য ব্রাভ আপনার মন্তব্যের জন্য ধন্যবাদ - আমি উত্তর আপডেট করছি
কামিল কিয়েসজেউস্কি

দুর্দান্ত, আপনার আপডেটের জন্য ধন্যবাদ! আমি লক্ষ্য করেছি যে আপনি এখন ফায়ারফক্সের গতিতে পারফরম্যান্সে একটি পার্থক্য দেখছেন। এটি ফায়ারফক্সের ফলাফল হতে পারে privacy.reduceTimerPrecisionযা ফলাফলটিকে নিকটতম মিলিসেকেন্ডে গোল করে। এটি ডিফল্টরূপে সক্ষম থাকলেও অক্ষম করা যায়। বিকাশকারী.মোজিলা.আর.ইন-
ইউএস

22

আমি অত্যন্ত ব্যবহার করার পরামর্শ দিচ্ছি moment.js। ইউনিক্স যুগের পর থেকে মিলিসেকেন্ডের সংখ্যা পেতে, করুন

moment().valueOf()

ইউনিক্স যুগের পর থেকে সেকেন্ডের সংখ্যা পেতে, করুন

moment().unix()

আপনি এ জাতীয় সময় রূপান্তর করতে পারেন:

moment('2015-07-12 14:59:23', 'YYYY-MM-DD HH:mm:ss').valueOf()

আমি এটা সবসময করি. কোন পাং উদ্দেশ্য।

moment.jsব্রাউজারে ব্যবহার করতে :

<script src="moment.js"></script>
<script>
    moment().valueOf();
</script>

ইনস্টল করার এবং MomentJS ব্যবহারের অন্য কোন উপায়ে সহ অধিক বিবরণের জন্য, জন্য, তাদের দেখতে ডক্স


21

মাইক্রোসেকেন্ড রেজোলিউশন সহ একটি টাইমস্ট্যাম্পের জন্য, এখানে রয়েছে performance.now:

function time() { 
  return performance.now() + performance.timing.navigationStart;
}

এটি উদাহরণস্বরূপ ফলন করতে পারে 1436140826653.139, যখন Date.nowকেবল দেয় 1436140826653


21

আপনি শুধুমাত্র ব্যবহার করতে পারেন

    var timestamp = new Date().getTime();
    console.log(timestamp);

বর্তমান টাইমস্ট্যাম্প পেতে। অতিরিক্ত কিছু করার দরকার নেই।


20

ফর্ম্যাটে টাইমস্ট্যাম্প উত্পন্ন করার জন্য এখানে একটি সাধারণ ফাংশন: মিমি / ডিডি / ইয়াহ এইচ: মাইল: এসএস

function getTimeStamp() {
    var now = new Date();
    return ((now.getMonth() + 1) + '/' +
            (now.getDate()) + '/' +
             now.getFullYear() + " " +
             now.getHours() + ':' +
             ((now.getMinutes() < 10)
                 ? ("0" + now.getMinutes())
                 : (now.getMinutes())) + ':' +
             ((now.getSeconds() < 10)
                 ? ("0" + now.getSeconds())
                 : (now.getSeconds())));
}

10
@ b123400 - এখানে পাতার মর্মর সংস্করণ: (new (chain (-date) (to-i-s-o-string)))
ইনাইমথি

20

// The Current Unix Timestamp
// 1443534720 seconds since Jan 01 1970. (UTC)

// seconds
console.log(Math.floor(new Date().valueOf() / 1000)); // 1443534720
console.log(Math.floor(Date.now() / 1000)); // 1443534720
console.log(Math.floor(new Date().getTime() / 1000)); // 1443534720

// milliseconds
console.log(Math.floor(new Date().valueOf())); // 1443534720087
console.log(Math.floor(Date.now())); // 1443534720087
console.log(Math.floor(new Date().getTime())); // 1443534720087

// jQuery
// seconds
console.log(Math.floor($.now() / 1000)); // 1443534720
// milliseconds
console.log($.now()); // 1443534720087
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


16

যে কোনও ব্রাউজারগুলি ডেট.নো সমর্থন করে না, আপনি বর্তমান তারিখের সময় পাওয়ার জন্য এটি ব্যবহার করতে পারেন:

currentTime = Date.now() || +new Date()

3
(আমার মন্তব্যের পুনঃপ্রকাশ) আপনার কোডটিতে একটি সমস্যা রয়েছে: এটি প্রথমে সমর্থনটি পরীক্ষা করার পরিবর্তে ডেট.নো পদ্ধতি চালায়। পুরানো ব্রাউজারগুলিতে এটি তারিখ তৈরি করবে now এখন কোনও ফাংশন ত্রুটি নয়।
সালমান এ

সম্ভবত একটি ভালো বিকল্প দাবী করে যে, একটি তিন অপারেটর ব্যবহার করতে হবে Date.nowএটা ডাকা চেষ্টা করার আগে, আসলে বিদ্যমান (এবং একটি ফাংশন): currentTime = typeof Date.now === "function" ? Date.now() : +new Date()
mgthomas99

14

এটির একটি সমাধান রয়েছে: যা ইউনিক্সটাইম স্ট্যাম্পকে টাইমে জেএসে রূপান্তর করে

var a = new Date(UNIX_timestamp*1000);
var hour = a.getUTCHours();
var min = a.getUTCMinutes();
var sec = a.getUTCSeconds();

14

অন্য দিন জিকুয়ারি কুকির উত্স কোড থেকে প্রদত্ত তারিখ অবজেক্টটিকে ইউনিক্স টাইমস্ট্যাম্পে রূপান্তরিত করার একটি দুর্দান্ত উপায় শিখেছি ।

এখানে একটি উদাহরণ:

var date = new Date();
var timestamp = +date;

আমি নতুন তারিখ () অবজেক্ট লিখতে চলেছি। আপনি লগ (নতুন তারিখ ()) কনসোল করতে পারেন এবং তারপরে নতুন তারিখ () অবজেক্ট / ফাংশন এর অধীনে সম্পর্কিত পদ্ধতিগুলির মাধ্যমে স্কিম করতে পারেন
sg28

14

যদি নোড.জেজে একটি টাইমস্ট্যাম্প তৈরির কোনও প্রাথমিক উপায় চান তবে এটি ভালভাবে কাজ করে।

var time = process.hrtime();
var timestamp = Math.round( time[ 0 ] * 1e3 + time[ 1 ] / 1e6 );

আমাদের দলটি লোকালহোস্ট পরিবেশে ক্যাশে আবদ্ধ করতে এটি ব্যবহার করছে। আউটপুটটি /dist/css/global.css?v=245521377যেখানে 245521377টাইমস্ট্যাম্প দ্বারা উত্পাদিত হয় hrtime()

আশা করি এটির সাহায্য করবে, উপরের পদ্ধতিগুলিও কাজ করতে পারে তবে আমি নোড.জেএস-এ আমাদের প্রয়োজনগুলির জন্য এটি সহজ পদ্ধতির বলে মনে করেছি this


13

এটি কাজ করে বলে মনে হচ্ছে।

console.log(clock.now);
// returns 1444356078076

console.log(clock.format(clock.now));
//returns 10/8/2015 21:02:16

console.log(clock.format(clock.now + clock.add(10, 'minutes'))); 
//returns 10/8/2015 21:08:18

var clock = {
    now:Date.now(),
    add:function (qty, units) {
            switch(units.toLowerCase()) {
                case 'weeks'   :  val = qty * 1000 * 60 * 60 * 24 * 7;  break;
                case 'days'    :  val = qty * 1000 * 60 * 60 * 24;  break;
                case 'hours'   :  val = qty * 1000 * 60 * 60;  break;
                case 'minutes' :  val = qty * 1000 * 60;  break;
                case 'seconds' :  val = qty * 1000;  break;
                default       :  val = undefined;  break;
                }
            return val;
            },
    format:function (timestamp){
            var date = new Date(timestamp);
            var year = date.getFullYear();
            var month = date.getMonth() + 1;
            var day = date.getDate();
            var hours = date.getHours();
            var minutes = "0" + date.getMinutes();
            var seconds = "0" + date.getSeconds();
            // Will display time in xx/xx/xxxx 00:00:00 format
            return formattedTime = month + '/' + 
                                day + '/' + 
                                year + ' ' + 
                                hours + ':' + 
                                minutes.substr(-2) + 
                                ':' + seconds.substr(-2);
            }
};

13

যদি এটি লগিংয়ের উদ্দেশ্যে হয় তবে আপনি আইএসওএসটারিং ব্যবহার করতে পারেন

new Date().toISOString()

"2019-05-18T20: 02: 36.694Z"



10

মোমেন্ট.জেএস জাভাস্ক্রিপ্ট তারিখগুলি নিয়ে কাজ করার ক্ষেত্রে প্রচুর ব্যথা দূর করতে পারে।

দেখুন: http://momentjs.com/docs/#/displaying/unix-timestamp/

moment().unix();

2
নোট করুন যে এটি UNIX যুগের পর থেকে সেকেন্ডের সংখ্যা (মিলিসেকেন্ড নয়) দেয়। আপনি যদি মিলি সেকেন্ড চান তবে ব্যবহার করুন moment().valueOf()। আমার উত্তর দেখুন।
ফুলস্ট্যাক

9

এটি লেখার ক্ষেত্রে, শীর্ষ উত্তরটি 9 বছরের পুরনো, এবং এরপরে অনেক কিছু পরিবর্তিত হয়েছে - অন্তত নয়, হ্যাকিবিহীন সমাধানের জন্য আমাদের কাছে সর্বজনীন সমর্থন রয়েছে:

Date.now()

আপনি যদি পুরোপুরি নিশ্চিত হতে চান যে এটি কোনও প্রাচীন (পূর্ব আই 9) ব্রাউজারে ভেঙে না যায়, আপনি এটিকে চেকের পিছনে রাখতে পারেন:

const currentTimestamp = (!Date.now ? +new Date() : Date.now());

এটি যুগের পর থেকে মিলিসেকেন্ডগুলি ফিরিয়ে দেবে, অবশ্যই, সেকেন্ড নয়।

তারিখে.এমডিএন ডকুমেন্টেশন


8

আরও সহজ উপায়:

var timeStamp=event.timestamp || new Date().getTime();

eventকোথা থেকে আসে জানি না । উত্তর লেখার পরিবর্তে আপনি যেভাবে এটি সমাধান করবেন সে সম্পর্কে আপনাকে আরও ভাল ব্যাখ্যা দিতে হবে। অনুগ্রহ!
alexventuraio

আমি নতুন তারিখ () অবজেক্ট লিখতে চলেছি। আপনি লগ (নতুন তারিখ ()) কনসোল করতে পারেন এবং তারপরে নতুন তারিখ () অবজেক্ট / ফাংশন এর অধীনে সম্পর্কিত পদ্ধতিগুলির মাধ্যমে স্কিম করতে পারেন
sg28
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.