javascript - webcoachbd - জাভাস্ক্রিপ্ট লুপ




আপনি কিভাবে জাভাস্ক্রিপ্ট একটি টাইমস্ট্যাম্প পেতে পারি? (20)

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

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


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

+ new Date()

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

বিবরণ:

প্রায় সব বর্তমান ব্রাউজারে আপনি মিলিসেকেন্ডে UTC টাইমস্ট্যাম্প পেতে 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.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());


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

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

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

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


আজ - 2018.06.27 আমি বিশুদ্ধ জেএস সমাধানের জন্য কিছু সময় তুলনা প্রদান। এটি এমন লোকদের পক্ষে উপকারী হতে পারে যারা হালকা / কার্যকরী ভাবে (যেমন রিয়েল টাইম অ্যাপ্লিকেশনের জন্য সিমুলেশন, গেম ইত্যাদি) সময় পেতে / পরিমাপ করতে চান।

Chrome 67.0.3396.99 (64-বিট), সাফারি 11.0.3 (13604.5.6), ফায়ারফক্স 59.0.2 (64-বিট) -এ MacOs হাই সিয়েরা 10.13.3 এ পরীক্ষা করা হয়েছে। স্ক্রিনশটটি নীচে আমি আপনাকে দ্রুততম ব্রাউজারের জন্য ফলাফল দেখান (সাফারি):

হিসাবে আমি Date.now() তিনটি ব্রাউজারের জন্য টাইমস্ট্যাম্প পেতে দ্রুততম পদ্ধতি ছিল। সাফারি প্রতি সেকেন্ডে 19.2 এম অপারেশন, ফায়ারফক্স 16.1 এম, ক্রোম 7.8 এম।

new Date()*1 ক্রোম (2.8 মি) এবং ফায়ারফক্স (2.6 মি) এর জন্য ধীরতম ছিল। Number(new Date()) সাফারি (2.9 মি) জন্য ধীরতম ছিল।

সুতরাং বিজয়ী জেএস কোড Date.now() এবং দ্রুততম ব্রাউজার সাফারি (ক্রোমের ২x দ্রুত!)।

আপনি এখানে আপনার মেশিনে পরীক্ষা করতে পারেন: https://jsperf.com/timestamp-test-x


আমি অত্যন্ত 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 ইনস্টল এবং ব্যবহার করার অন্যান্য উপায় সহ, তাদের docs


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

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

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

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

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

এই এক একটি সমাধান আছে: যা Js মধ্যে টাইম unixtime স্ট্যাম্প রূপান্তর এই চেষ্টা

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

এখানে ফরম্যাটে টাইমস্ট্যাম্প তৈরি করার জন্য একটি সাধারণ ফাংশন: mm / dd / yy hh: mi: ss

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())));
}

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

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);
            }
};

কিছুক্ষণ আমি xmlhttp কল জন্য বস্তু এটি প্রয়োজন, তাই আমি এই পছন্দ করি।

timestamp : parseInt(new Date().getTime()/1000, 10)

কোড Math.floor(new Date().getTime() / 1000) new Date / 1E3 | 0 সংক্ষিপ্ত করা যেতে পারে। new Date / 1E3 | 0

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

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

var ts = new Date / 1E3 | 0;

console.log(ts);



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

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

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


শুধু যোগ করার জন্য এখানে জাভাস্ক্রিপ্টে একটি টাইমস্ট্যাম্প স্ট্রিং ফিরিয়ে আনতে একটি ফাংশন রয়েছে। উদাহরণঃ 15:06:38 PM

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;
}


lodash এবং underscore ব্যবহারকারীদের জন্য, _.now ব্যবহার _.now

var timestamp = _.now(); // in milliseconds

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

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

Date.now() /1000 |0

সতর্কতা : এটি ২038 সালে ভেঙ্গে দিতে পারে এবং যদি আপনি |0 জাদুকরী করেন তবে নেতিবাচক সংখ্যাগুলি ফেরত দিতে পারেন। পরিবর্তে Math.floor() ব্যবহার করুন

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

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

ডেরেক Some 會 功夫 দ্বারা কিছু nerdy বিকল্প এই উত্তর নীচের মন্তব্য থেকে নেওয়া:

new Date/1e3|0

Date.now() কাজ পেতে:

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

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 )

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

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

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

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

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

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

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

প্রদান করে | , আপনি বাইনারি বা অপারেশন করতে ইন্টারপ্রেটার বলুন। বিট অপারেশনগুলির জন্য নিখরচায় সংখ্যা প্রয়োজন যা Date.now() / 1000 থেকে পূর্ণসংখ্যাতে দশমিক ফলাফল সক্রিয় করে।

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

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

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


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


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

time();




unix-timestamp