একটি ইউনিক্স টাইমস্ট্যাম্পকে জাভাস্ক্রিপ্টে সময়ে রূপান্তর করুন


1157

আমি ইউনিক্স টাইমস্ট্যাম্প হিসাবে একটি মাইএসকিউএল ডাটাবেসে সময় সঞ্চয় করছি এবং এটি কিছু জাভাস্ক্রিপ্ট কোডে প্রেরণ করা হবে। আমি এর থেকে ঠিক সময়টি কীভাবে পাব?

উদাহরণস্বরূপ, এইচএইচ / এমএম / এসএস ফর্ম্যাটে।


5
জেএস টাইমস্ট্যাম্পগুলি মিলি সেকেন্ডে রয়েছে এবং পিএইচপি কয়েক সেকেন্ডে বিতরণ করে কেবল 1000 দিয়ে গুণ করুন।
অ্যাঙ্কার

এখানে বিভিন্ন তারিখের বিন্যাসের সাথে একটি খুব দরকারী লিঙ্ক দেওয়া হয়েছে: টাইমস্ট্যাম্প.অনলাইন / পার্টিকেল/… 1000 দ্বারা গুণনের সাথে একত্রিত হন এবং এটি কাজটি সম্পন্ন করে!
কেভিন লেমায়ার

উত্তর:


1728

let unix_timestamp = 1549312452
// Create a new JavaScript Date object based on the timestamp
// multiplied by 1000 so that the argument is in milliseconds, not seconds.
var date = new Date(unix_timestamp * 1000);
// Hours part from the timestamp
var hours = date.getHours();
// Minutes part from the timestamp
var minutes = "0" + date.getMinutes();
// Seconds part from the timestamp
var seconds = "0" + date.getSeconds();

// Will display time in 10:30:23 format
var formattedTime = hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);

console.log(formattedTime);

তারিখ অবজেক্ট সম্পর্কিত আরও তথ্যের জন্য, দয়া করে MDN বা ECMAScript 5 স্পেসিফিকেশন দেখুন


114
@ নিকফের গুণগুলি আধুনিক সিপিইউগুলিতে তুচ্ছ - স্ট্রিং কনটেনটেশনে আরও অনেক বেশি কাজের প্রয়োজন হবে !
Alnitak

4
কনটেটনেশনটিতে মেমরি পড়া এবং মেমরি লেখা থাকা উচিত ... কেউ কীভাবে এমন কিছু ডিজাইন করতে পারে যা কিছু যোগ করার মতো সহজ কিছু লাগে এবং এটি মাল্টিপ্লেকশন থেকে আরও জটিল করে তুলতে পারে ... একটি শিশুকে কনটেনেট করতে বলে এবং তারা করতে পারে ... বহুগুণ আরও কঠিন ... প্লাস মেমরি রৈখিকভাবে কোনও অয়াওয়্যাসের জন্য কাজ করা হয় ... কেউ কি @ নিকফ মন্তব্যে কোনও রেফারেন্স দিতে পারেন?

29
আসলে এটি '10: 2: 2 'ফর্ম্যাটে সময় প্রদর্শন করবে, যেহেতু এটি 10 ​​টি নীচের মানের আগে অতিরিক্ত 0 যোগ করে না
ফায়ারব্লেজ

16
@ ব্যবহারকারী 656925 - গুণে সংখ্যার জড়িত থাকে, সংক্ষেপে স্ট্রিং জড়িত। কম্পিউটার স্ট্রিংয়ের চেয়ে অনেক বেশি দক্ষতার সাথে সংখ্যাগুলি পরিচালনা করে। যখন স্ট্রিং কনটেনটেশন সম্পন্ন হয়, পটভূমিতে প্রচুর মেমরি পরিচালনা চলছে। (তবে, আপনি যদি ইতিমধ্যে কোনও স্ট্রিং কনটেনটেশন করছেন, তবে স্ট্রিংগুলির মধ্যে একটিতে কয়েকটি অতিরিক্ত অক্ষর অন্তর্ভুক্ত করাতে সম্ভবত একটি সংখ্যক প্রসেসরের চেয়ে কম ব্যয় হতে পারে, এটি দুটি সংখ্যাকে একসাথে
গুণতে পারে

6
@ স্টলম্যান নম্বর গণনা হ'ল কম্পিউটারগুলি সবচেয়ে মৌলিক জিনিস এবং মেমরি এবং রানটাইম উভয় ক্ষেত্রেই তারা এটি অত্যন্ত দক্ষ। উপরের ব্রিলিয়ান্ডের মন্তব্য প্রাসঙ্গিক, যদিও আইএমএইচও তাঁর মন্তব্যের খুব চূড়ান্ত অংশটি সম্পূর্ণ বোগাস us
আলনিটাক

297

function timeConverter(UNIX_timestamp){
  var a = new Date(UNIX_timestamp * 1000);
  var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
  var year = a.getFullYear();
  var month = months[a.getMonth()];
  var date = a.getDate();
  var hour = a.getHours();
  var min = a.getMinutes();
  var sec = a.getSeconds();
  var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ;
  return time;
}
console.log(timeConverter(0));


এইচএইচ / এমএম / এসএসের জন্য কেবল সর্বশেষ তিনটি ভেরিয়েবল ব্যবহার করুন এবং এটি সময় আপনার স্থানীয় সময় হবে তবে আপনি যদি ইউটিসির সময় পেতে চান তবে কেবল getUTC পদ্ধতি ব্যবহার করুন। এখানে কোড।
shomrat

36
আমি এই সমাধানটি ব্যবহার করেছি তবে এটি টুইট করে রেখেছি যাতে কয়েক মিনিট এবং সেকেন্ডটি প্রদর্শিত হবে: 03 বা: 09 এর পরিবর্তে: 3 বা: 9, এর মতো:var min = a.getMinutes() < 10 ? '0' + a.getMinutes() : a.getMinutes(); var sec = a.getSeconds() < 10 ? '0' + a.getSeconds() : a.getSeconds();
ব্যবহারকারী 1985189

3
বাগ: getMonth()0 থেকে 11 এর মধ্যে এক মাসের সংখ্যা ফেরত দেয়, সুতরাং a.getMonth() - 1এটি ভুল।
jcampbell1

195

জাভাস্ক্রিপ্ট মিলিসেকেন্ডে কাজ করে, তাই আপনাকে প্রথমে ইউনিক্স টাইমস্ট্যাম্পটি সেকেন্ড থেকে মিলিসেকেন্ডে রূপান্তর করতে হবে।

var date = new Date(UNIX_Timestamp * 1000);
// Manipulate JavaScript Date object here...

80

আমি জ্যাকব রাইটের Date.format()লাইব্রেরির আংশিক , যা পিএইচপি date()ফাংশনের স্টাইলে জাভাস্ক্রিপ্টের তারিখের ফর্ম্যাটিং প্রয়োগ করে ।

new Date(unix_timestamp * 1000).format('h:i:s')

12
আমি জানি এটি একদিনে ভাল উত্তর ছিল, তবে এই দিনগুলিতে নেটিভ জেএস বিষয়বস্তুগুলি প্রসারিত করা একটি অ্যান্টি-প্যাটার্ন।
পিটার

3
এটা তোলে (আর?) নোড JS কাজ করে না format is not a function। কিন্তু এই দৃশ্যত কাজ করে: stackoverflow.com/a/34015511/7550772
ibodi

71

ব্যবহার করুন:

var s = new Date(1504095567183).toLocaleDateString("en-US")
console.log(s)
// expected output "8/30/2017"  

এবং সময়ের জন্য:

var s = new Date(1504095567183).toLocaleTimeString("en-US")
console.log(s)
// expected output "3:19:27 PM"

দেখতে Date.prototype.toLocaleDateString ()


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

2
কেবল একটি নোট, "1504095567183" নম্বরটি ইউনিক্স_টাইমস্ট্যাম্প * 1000
ক্যামিলো 7777

1
এছাড়াও, toLocaleStringতারিখ এবং সময় উভয়ই অন্তর্ভুক্ত।
শান

56

এখানে সেকেন্ডে বিন্যাস করার জন্য সংক্ষিপ্ত ওয়ান-লাইনারের সমাধানটি রয়েছে hh:mm:ss:

/**
 * Convert seconds to time string (hh:mm:ss).
 *
 * @param Number s
 *
 * @return String
 */
function time(s) {
    return new Date(s * 1e3).toISOString().slice(-13, -5);
}

console.log( time(12345) );  // "03:25:45"

পদ্ধতিটি Date.prototype.toISOString()সরলীকৃত বর্ধিত আইএসও 8601 ফর্ম্যাটে সময় দেয় যা সর্বদা 24 বা 27 অক্ষর দীর্ঘ (যেমন YYYY-MM-DDTHH:mm:ss.sssZবা ±YYYYYY-MM-DDTHH:mm:ss.sssZযথাক্রমে)। সময় অঞ্চলটি সর্বদা শূন্য ইউটিসি অফসেট থাকে।

এনবি: এই সমাধানটির জন্য কোনও তৃতীয় পক্ষের লাইব্রেরি প্রয়োজন হয় না এবং সমস্ত আধুনিক ব্রাউজার এবং জাভাস্ক্রিপ্ট ইঞ্জিনগুলিতে সমর্থিত।


আমি ক্রোমের কনসোলে আপনার ফাংশনটি আটকে দিচ্ছি: / এমনকি আপনার ফিডলে এটি দেখানো হচ্ছে 01:02:00 আমার জন্য! ফায়ারফক্সে চেষ্টা করা হয়েছে, একই ফলাফল। খুব অদ্ভুত ... আমি বেশ নিশ্চিত কারণ এটি GMT + 1!
স্টিভ চ্যামিলার্ড

আমি আপনার উত্তরের জন্য একটি সম্পাদনার প্রস্তাব দিয়েছি যা কোনও সময় অঞ্চলকে উপেক্ষা করে, তাই এটি সর্বদা সঠিক বিন্যাসিত মানটি দেখায়!
স্টিভ চ্যামিলার্ড

1
@ স্টিভচ্যামিলার্ড আপনাকে ধন্যবাদ, স্টিভ। আপনি ঠিক বলেছেন, toTimeStringসময় অঞ্চলগুলির সাথে ভাল কাজ করছিলেন না। দুর্ভাগ্যক্রমে আপনার সম্পাদনাটি দেখার আগে তা প্রত্যাখ্যান করা হয়েছিল। যাইহোক, আমি toISOStringপরিবর্তে ব্যবহার করার পরামর্শ দেব , যেহেতু toGMTStringঅবহেলিত এবং বিভিন্ন প্ল্যাটফর্মগুলিতে বিভিন্ন ফলাফল আসতে পারে।
ভিজিওন

ES6 পারলে বেঁটে: দিন সময় = গুলি => নতুন তারিখ (গুলি * 1e3) .toISOString () ফালি (-13, -5)।
SamGoody

28

আমি momentjs.com এর মতো একটি লাইব্রেরি ব্যবহার করার বিষয়ে চিন্তা করব , যা এটি সত্যই সহজ করে তুলেছে :

ইউনিক্স টাইমস্ট্যাম্পের ভিত্তিতে:

var timestamp = moment.unix(1293683278);
console.log( timestamp.format("HH/mm/ss") );

একটি মাইএসকিউএল তারিখের স্ট্রিংয়ের উপর ভিত্তি করে:

var now = moment("2010-10-10 12:03:15");
console.log( now.format("HH/mm/ss") );

3
moment.js (বা অনুরূপ libs) এর আরেকটি সুবিধা হ'ল "6 ঘন্টা আগে" এর মতো বার্তাগুলির জন্য আপেক্ষিক সময়ের তাদের সমর্থন ।
মার্টিন

আপনার console.logউদাহরণগুলিতে আমি এর কারণে ফর্ম্যাটটি সম্পর্কে বিভ্রান্ত হয়ে পড়েছিলাম /তবে এটি আমাকে অনেক সাহায্য করেছিল।
নেটওপ্রেটর উইব্বি

আমার টাইমস্ট্যাম্পটি ইউটিসি ফর্ম্যাটে রয়েছে। তার জন্য এখানে আমার কী পরিবর্তন দরকার? আমি কীভাবে / সন্ধ্যা হতে পারি?
কোডেক

moment.js এ রকম একটি ছোট কাজ করার জন্য ওয়ায় ওভারকিল এবং এটি আপনার পারফরম্যান্সকে প্রভাবিত করবে। পরিবর্তে নেটিভ পদ্ধতি ব্যবহার করুন, সিএফ। ড্যান আলবোোটানুর উত্তর
রবিন ম্যাট্রাল

22

UNIX টাইমস্ট্যাম্পটি 1 জানুয়ারী, 1970 কে ইউটিসি থেকে 00:00:00 সাল থেকে সেকেন্ডের ( উইকিপিডিয়া অনুসারে )।

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

উদাহরণস্বরূপ নীচের কোডটি দেখুন:

    function tm(unix_tm) {
        var dt = new Date(unix_tm*1000);
        document.writeln(dt.getHours() + '/' + dt.getMinutes() + '/' + dt.getSeconds() + ' -- ' + dt + '<br>');

    }

tm(60);
tm(86400);

দেয়:

1/1/0 -- Thu Jan 01 1970 01:01:00 GMT+0100 (Central European Standard Time)
1/0/0 -- Fri Jan 02 1970 01:00:00 GMT+0100 (Central European Standard Time)

19

hh: মিমি: এসএস: ভেরিয়েন্ট হিসাবে সেকেন্ড বিন্যাসে সংক্ষিপ্ততম এক-লাইনারের সমাধান

console.log(new Date(1549312452 * 1000).toISOString().slice(0, 19).replace('T', ' '));
// "2019-02-04 20:34:12"


1
পিএইচপি ইউনিক্স টাইমস্ট্যাম্পগুলির সাথে এটি ব্যবহার করার সময় আমি কোনও কারণে আসল সময়ের চেয়ে + 5 ঘন্টা
পাই

2
@ কেয়ানু_আরভিস - আপনি পূর্ব ইউএস টাইম জোনে আছেন এবং টাইমস্ট্যাম্পগুলি ইউটিসি বলে মনে হচ্ছে। .স্লাইস (0,19) মুছে ফেলার চেষ্টা করুন এবং আমি মনে করি আপনি ফলাফলের সময় অঞ্চলটি জেড (জুলু) দেখতে পাবেন।
বিটফিডলার

17

মোমেন্ট.জেএস ব্যবহার করে আপনি এর মতো সময় এবং তারিখ পেতে পারেন:

var dateTimeString = moment(1439198499).format("DD-MM-YYYY HH:mm:ss");

এবং আপনি এটি ব্যবহার করে কেবল সময় পেতে পারেন:

var timeString = moment(1439198499).format("HH:mm:ss");

আপনি কীভাবে এটি পিছন দিকে কীভাবে করতে চান, এই ফর্ম্যাটটিকে ডিডি-এমএম-ওয়াইওয়াই এইচ: মিমি: এসএসকে 1439198499 এর মতো কিছুতে রূপান্তর করার মতো ??
কেমাট রোচি

হাই কেমাট, আপনি এই বিবৃতি মুহুর্তের মাধ্যমে এটি করতে পারেন ('৯৯-০7-১ 00 00:00:00 ')। ইউনিক্স ()
পিটার টি।

আমার টাইমস্ট্যাম্পটি ইউটিসি ফর্ম্যাটে রয়েছে। তার জন্য এখানে আমার কোনও পার্থক্য দরকার? আমি কীভাবে / সন্ধ্যা হতে পারি?
কোডেক

আপনি সহজেই তারিখ usign momentJS করার টাইমস্ট্যাম্প রূপান্তর করতে পারেন, আপনি এই চেকআউট coderszine.com/convert-timestamp-to-date-using-javascript
Laeeq

15

পূর্বোক্ত সমাধানগুলির সাথে সমস্যাটি হ'ল, যদি ঘন্টা, মিনিট বা সেকেন্ডের একটি মাত্র অঙ্ক থাকে (যেমন 0-9) তবে সময়টি ভুল হতে পারে, উদাহরণস্বরূপ এটি 2: 3: 9 হতে পারে তবে এটি বরং 02 হওয়া উচিত: 03:09।

এই পৃষ্ঠা অনুসারে এটি তারিখের "টু লোকলেটাইমস্ট্রিং" পদ্ধতিটি ব্যবহার করার জন্য আরও ভাল সমাধান বলে মনে হচ্ছে।


5
বেশিরভাগ ওয়েব সলিউশনের জন্য, এটি সবচেয়ে সঠিক উত্তর, যেহেতু এটি ক্লায়েন্টের লোকেল ব্যবহার করে, যেমন 24 ঘন্টা বনাম 12 ঘন্টা / বিকাল ফর্ম্যাট। একটি সময়ের স্ট্রিংয়ের জন্য, আপনি তখন ব্যবহার করতে পারেন:date.toLocaleTimeString()
বাচ্চি

1
এটি toTimeStringপদ্ধতিতে হবে না । এখানে চেক করুন: স্ট্যাকওভারফ্লো . com / a / 35890537 / 1249581
ভিসিওন

14

অন্য উপায় - একটি আইএসও 8601 তারিখ থেকে।

var timestamp = 1293683278;
var date = new Date(timestamp * 1000);
var iso = date.toISOString().match(/(\d{2}:\d{2}:\d{2})/)
alert(iso[1]);


আমি পেয়েছি "অবজেক্ট ... এর কোনও পদ্ধতি নেই '
আইআইএসএসটিং

আমার টাইমস্ট্যাম্পটি ইউটিসি ফর্ম্যাটে রয়েছে। তার জন্য এখানে আমার কোনও পার্থক্য দরকার? আমি কীভাবে / সন্ধ্যা হতে পারি?
কোডেক

13

মুহুর্তে আপনাকে অবশ্যই ইউনিক্স টাইমস্ট্যাম্প ব্যবহার করতে হবে:

var dateTimeString = moment.unix(1466760005).format("DD-MM-YYYY HH:mm:ss");

10

@ শমরাটের উত্তরের ভিত্তিতে, এখানে একটি স্নিপেট রয়েছে যা স্বয়ংক্রিয়ভাবে এইভাবে ডেটটাইম লিখবে (উত্তরের জন্য স্ট্যাকওভারফ্লোয়ের তারিখের সাথে কিছুটা অনুরূপ answered Nov 6 '16 at 11:51:):

today, 11:23

অথবা

yersterday, 11:23

বা (যদি আজকের চেয়ে আলাদা তবে একই বছর)

6 Nov, 11:23

বা (আজকের তুলনায় অন্য কোনও বছর হলে)

6 Nov 2016, 11:23

function timeConverter(t) {     
    var a = new Date(t * 1000);
    var today = new Date();
    var yesterday = new Date(Date.now() - 86400000);
    var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    var year = a.getFullYear();
    var month = months[a.getMonth()];
    var date = a.getDate();
    var hour = a.getHours();
    var min = a.getMinutes();
    if (a.setHours(0,0,0,0) == today.setHours(0,0,0,0))
        return 'today, ' + hour + ':' + min;
    else if (a.setHours(0,0,0,0) == yesterday.setHours(0,0,0,0))
        return 'yesterday, ' + hour + ':' + min;
    else if (year == today.getFullYear())
        return date + ' ' + month + ', ' + hour + ':' + min;
    else
        return date + ' ' + month + ' ' + year + ', ' + hour + ':' + min;
}

9

যে আধুনিক সমাধানটির জন্য 40 কেবি লাইব্রেরির প্রয়োজন নেই:

তারিখ / সময় বিন্যাস করার জন্য ইনটল.ডেটটাইম ফর্ম্যাট হ'ল অ-সাংস্কৃতিকভাবে সাম্রাজ্যবাদী উপায়।

// Setup once
var options = {
    //weekday: 'long',
    //month: 'short',
    //year: 'numeric',
    //day: 'numeric',
    hour: 'numeric',
    minute: 'numeric',
    second: 'numeric'
},
intlDate = new Intl.DateTimeFormat( undefined, options );

// Reusable formatter
var timeStamp = 1412743273;
console.log( intlDate.format( new Date( 1000 * timeStamp ) ) );

সংক্রান্ত "অ-সাংস্কৃতিকভাবে সাম্রাজ্যবাদী পথ" : তুমি মানে এই নয় "অ-সাংস্কৃতিকভাবে এবং অ সাম্রাজ্যবাদী পথ" ?
পিটার মর্টেনসেন

দুর্ভাগ্যক্রমে এই পদ্ধতিটি সাফারির সাথে সামঞ্জস্যপূর্ণ নয়।
স্টিফেন এস

9

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

var d =val.timestamp;
var date=new Date(+d); //NB: use + before variable name

console.log(d);
console.log(date.toDateString());
console.log(date.getFullYear());
console.log(date.getMinutes());
console.log(date.getSeconds());
console.log(date.getHours());
console.log(date.toLocaleTimeString());

উপরের পদ্ধতিগুলি এই ফলাফলগুলি তৈরি করবে

1541415288860
Mon Nov 05 2018 
2018 
54 
48 
13
1:54:48 PM

এমন অনেকগুলি পদ্ধতি রয়েছে যা টাইমস্ট্যাম্পগুলির সাথে নিখুঁতভাবে কাজ করে। তাদের সব তালিকা


8
function getTIMESTAMP() {
  var date = new Date();
  var year = date.getFullYear();
  var month = ("0" + (date.getMonth() + 1)).substr(-2);
  var day = ("0" + date.getDate()).substr(-2);
  var hour = ("0" + date.getHours()).substr(-2);
  var minutes = ("0" + date.getMinutes()).substr(-2);
  var seconds = ("0" + date.getSeconds()).substr(-2);

  return year + "-" + month + "-" + day + " " + hour + ":" + minutes + ":" + seconds;
}

//2016-01-14 02:40:01

ঠিকভাবে কাজ করে. আপনাকে ধন্যবাদ
ভ্লাদ

6

কিছু উত্তর সহ শূন্য সমস্যার দিকে মনোযোগ দিন। উদাহরণস্বরূপ, টাইমস্ট্যাম্পটি 1439329773ভুলভাবে রূপান্তরিত হবে12/08/2015 0:49

আমি এই সমস্যাটি কাটিয়ে উঠতে নিম্নলিখিতটি ব্যবহার করার পরামর্শ দেব:

var timestamp = 1439329773; // replace your timestamp
var date = new Date(timestamp * 1000);
var formattedDate = ('0' + date.getDate()).slice(-2) + '/' + ('0' + (date.getMonth() + 1)).slice(-2) + '/' + date.getFullYear() + ' ' + ('0' + date.getHours()).slice(-2) + ':' + ('0' + date.getMinutes()).slice(-2);
console.log(formattedDate);

এখন ফলাফল:

12/08/2015 00:49

5
// Format value as two digits 0 => 00, 1 => 01
function twoDigits(value) {
   if(value < 10) {
    return '0' + value;
   }
   return value;
}

var date = new Date(unix_timestamp*1000);
// display in format HH:MM:SS
var formattedTime = twoDigits(date.getHours()) 
      + ':' + twoDigits(date.getMinutes()) 
      + ':' + twoDigits(date.getSeconds());

আমি মনে করি না যে আপনার যখন কোনও শূন্যের পিছনে নম্বর পাওয়ার জন্য অতিরিক্ত, পৃথক ফাংশন প্রয়োজন তখনই আমার উত্তরটি নীচে দেখুন।
ট্রেজার্ড

2
@ ট্রেজেদার, উদাহরণস্বরূপ, অতিরিক্ত ফাংশন সহ আপনি এক জায়গায় থাকাকালীন আপনি যুক্তিটি দ্বৈত করেছেন। এছাড়াও আপনি এখানে ডেট ফান্টন (যেমন getHours ()) সর্বদা দুইবার ট্রিগার করেন - এটি এক সময়ের কল। আপনি কখনই জানতে পারবেন না যে কোনও লাইব্রেরির ফাংশন পুনরায় সম্পাদন করা কত ভারী (তবে আমি বিশ্বাস করি এটি তারিখের জন্য হালকা)।
ওয়ালভ

4
function timeConverter(UNIX_timestamp){
 var a = new Date(UNIX_timestamp*1000);
     var hour = a.getUTCHours();
     var min = a.getUTCMinutes();
     var sec = a.getUTCSeconds();
     var time = hour+':'+min+':'+sec ;
     return time;
 }


4

আপনার টাইমস্ট্যাম্পটিকে HH:MM:SSফর্ম্যাটে রূপান্তর করতে আপনি নীচের ফাংশনটি ব্যবহার করতে পারেন :

var convertTime = function(timestamp, separator) {
    var pad = function(input) {return input < 10 ? "0" + input : input;};
    var date = timestamp ? new Date(timestamp * 1000) : new Date();
    return [
        pad(date.getHours()),
        pad(date.getMinutes()),
        pad(date.getSeconds())
    ].join(typeof separator !== 'undefined' ?  separator : ':' );
}

বিভাজকটি পাস না করে :এটি (ডিফল্ট) বিভাজক হিসাবে ব্যবহার করে:

time = convertTime(1061351153); // --> OUTPUT = 05:45:53

আপনি যদি পৃথক /হিসাবে ব্যবহার করতে চান তবে এটি দ্বিতীয় প্যারামিটার হিসাবে পাস করুন:

time = convertTime(920535115, '/'); // --> OUTPUT = 09/11/55

ডেমো

var convertTime = function(timestamp, separator) {
    var pad = function(input) {return input < 10 ? "0" + input : input;};
    var date = timestamp ? new Date(timestamp * 1000) : new Date();
    return [
        pad(date.getHours()),
        pad(date.getMinutes()),
        pad(date.getSeconds())
    ].join(typeof separator !== 'undefined' ?  separator : ':' );
}

document.body.innerHTML = '<pre>' + JSON.stringify({
    920535115 : convertTime(920535115, '/'),
    1061351153 : convertTime(1061351153, ':'),
    1435651350 : convertTime(1435651350, '-'),
    1487938926 : convertTime(1487938926),
    1555135551 : convertTime(1555135551, '.')
}, null, '\t') +  '</pre>';

আরও দেখুন এই বেহালার


3

 function getDateTimeFromTimestamp(unixTimeStamp) {
        var date = new Date(unixTimeStamp);
        return ('0' + date.getDate()).slice(-2) + '/' + ('0' + (date.getMonth() + 1)).slice(-2) + '/' + date.getFullYear() + ' ' + ('0' + date.getHours()).slice(-2) + ':' + ('0' + date.getMinutes()).slice(-2);
      }

    var myTime = getDateTimeFromTimestamp(1435986900000);
    console.log(myTime); // output 01/05/2000 11:00


এটি কোনও ইউনিক্স টাইমস্ট্যাম্প নয়: 1435986900000 / এটি একটি ইউনিক্স টাইমস্ট্যাম্প: 1435986900
ওরিসি

এই সমাধানটি আমার পক্ষে কাজ করে তবে আমি সংখ্যার পরিবর্তে ফেব্রুয়ারী এপ্রিলের মতো মাসটি কীভাবে নিতে পারি?
abidinberkay

2

আপনি যদি ইউনিক্সের সময়কালকে আসল ঘন্টা, মিনিট এবং সেকেন্ডে রূপান্তর করতে চান তবে আপনি নিম্নলিখিত কোডটি ব্যবহার করতে পারেন:

var hours = Math.floor(timestamp / 60 / 60);
var minutes = Math.floor((timestamp - hours * 60 * 60) / 60);
var seconds = Math.floor(timestamp - hours * 60 * 60 - minutes * 60 );
var duration = hours + ':' + minutes + ':' + seconds;

1
function getDateTime(unixTimeStamp) {

    var d = new Date(unixTimeStamp);
    var h = (d.getHours().toString().length == 1) ? ('0' + d.getHours()) : d.getHours();
    var m = (d.getMinutes().toString().length == 1) ? ('0' + d.getMinutes()) : d.getMinutes();
    var s = (d.getSeconds().toString().length == 1) ? ('0' + d.getSeconds()) : d.getSeconds();

    var time = h + '/' + m + '/' + s;

    return time;
}

var myTime = getDateTime(1435986900000);
console.log(myTime); // output 01/15/00

1

নীচের কোডটি 3-অঙ্কের মিলিসেকও সরবরাহ করে, কনসোল লগ উপসর্গের জন্য আদর্শ:

const timeStrGet = date => {
    const milliSecsStr = date.getMilliseconds().toString().padStart(3, '0') ;
    return `${date.toLocaleTimeString('it-US')}.${milliSecsStr}`;
};

setInterval(() => console.log(timeStrGet(new Date())), 299);


1

moment.js

টাইমস্ট্যাম্পগুলি জেএসে তারিখের স্ট্রিংয়ে রূপান্তর করুন

https://momentjs.com/

moment().format('YYYY-MM-DD hh:mm:ss');
// "2020-01-10 11:55:43"

moment(1578478211000).format('YYYY-MM-DD hh:mm:ss');
// "2020-01-08 06:10:11"


বিকল্প পছন্দ day.js github.com/iamkun/dayjs
xgqfrms

1

@ অ্যারন দ্বারা প্রদত্ত উত্তরটি কাজ করে তবে এটি আমার পক্ষে কার্যকর হয়নি কারণ আমি 1980 থেকে শুরু করে টাইমস্ট্যাম্পকে রূপান্তর করার চেষ্টা করছিলাম So সুতরাং আমি নীচে কয়েকটি পরিবর্তন করেছি

function ConvertUnixTimeToDateForLeap(UNIX_Timestamp) {
    var dateObj = new Date(1980, 0, 1, 0, 0, 0, 0);
    dateObj.setSeconds(dateObj.getSeconds() + UNIX_Timestamp);
    return dateObj;  
}

document.body.innerHTML = 'TimeStamp : ' + ConvertUnixTimeToDateForLeap(1269700200);

সুতরাং আপনার যদি অন্য দশক বা তার বেশি সময় থেকে শুরু হওয়া টাইমস্ট্যাম্প থাকে তবে কেবল এটি ব্যবহার করুন। এটি আমার জন্য অনেক মাথা ব্যাথা বাঁচিয়েছিল।

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