সাধারণ তারিখটিকে ইউনিক্স টাইমস্ট্যাম্পে রূপান্তর করুন


113

আমি কীভাবে 2012.08.10জাভাস্ক্রিপ্টে সাধারণ তারিখটিকে ইউনিক্স টাইমস্ট্যাম্পে রূপান্তর করতে পারি ?

ফিডল: http://jsfiddle.net/J2pWj/




আমি এখানে অনেকগুলি পোস্ট দেখেছি যা এটিকে পিএইচপি, রুবি ইত্যাদিতে রূপান্তরিত করে ... তবে আমার জেএসের ভিতরে এটি করা দরকার।



4
আপনি কি newDate.getTime () / 1000 চেষ্টা করেছেন?
গ্যারেথ পার্কার 22

হ্যাঁ, দুঃখিত। আমি অনুসন্ধান করেছি কিন্তু এটি পেলাম না।
স্ট্যান

4
হতে পারে আমি কিছু মিস করছি তবে unix timestampসমস্ত ইঞ্জিনিয়ারিং এবং কম্পিউটার বিজ্ঞানের জন্য এটি মৌলিক। আশা করি সেখানে বিল্ট-ইন সুবিধা পদ্ধতি ছিল। বর্তমানে আমি ব্যবহার করছিMath.floor((+new Date()) / 1000);
মার্স রবার্টসন

উত্তর:


227
new Date('2012.08.10').getTime() / 1000

জাভাস্ক্রিপ্ট তারিখ ডকুমেন্টেশন চেক করুন ।


4
ডকুমেন্টেশন পৃষ্ঠার জন্য ধন্যবাদ আমি যা চাই তা করেছি।
স্ট্যান

37
ম্যাথ.ফ্লোর করুন বা এটি কোনও ইউনিক্স টাইমস্ট্যাম্প নয় (এটির দশমিকটি হবে)
বিটি

@ ফগুইলেন, মুসম্যান, আমি এই কোডটি চালাচ্ছি এবং পরীক্ষা করে দেখছি। আমি একবার ইউনিক্স টাইমস্ট্যাম্পকে তারিখে রূপান্তর করি তবে এটি আমাকে 2012.08.10 এর পরিবর্তে 2012.08.09 দিচ্ছে। কেন ..?
ডাব্লুপি লার্নার

4
@ ব্যবহারকারী 2584538, নীচে আমার উত্তর দেখুন। আপনাকে অবশ্যই দশমিক দূর করতে হবে।
দ্য ভিঞ্চি

4
@ মেন্টর ইউনিক্স সময়টি সেকেন্ডে পরিমাপ করা হয়, মিলিসেকেন্ডে নয়
নিকু সুরডু

62
parseInt((new Date('2012.08.10').getTime() / 1000).toFixed(0))

এটি যুক্ত করা গুরুত্বপূর্ণ toFixed(0)মিলিসেকেন্ড থেকে সেকেন্ডে রূপান্তর করতে 1000 দ্বারা বিভাজক হওয়ার সময় যে কোনও দশমিকগুলি সরিয়ে ফেলতে ।

.getTime()ফাংশন মিলিসেকেন্ডে টাইমস্ট্যাম্প ফেরৎ, কিন্তু সত্য UNIX টাইমস্ট্যাম্প সেকেন্ডের মধ্যে সবসময়।


4
কেবল সতর্ক থাকুন যে এটি কোনও সংখ্যার নয়, একটি স্ট্রিং প্রদান করে।
কপাজ

4
ভাল পয়েন্ট, পূর্ণসংখ্যায় ফিরে রূপান্তর করতে পার্সেন্ট () দিয়ে মোড়কের উত্তর পরিবর্তিত হয়েছে।
দ্য ভিঞ্চি

13

আপনার এই মুহুর্তটি পরীক্ষা করা উচিত ap এপিএস, এটি ব্যবহার করা খুব সহজ এবং বৈশিষ্ট্যগুলিতে প্রচুর বিল্ট রয়েছে।

আমি মনে করি আপনার সমস্যার জন্য, আপনি এই জাতীয় কিছু ব্যবহার করতে পারেন:

var unixTimestamp = moment('2012.08.10', 'YYYY.MM.DD').unix();


5

আপনি কেবল আনারি + অপারেটরটি ব্যবহার করতে পারেন

(+new Date('2012.08.10')/1000).toFixed(0);

http://xkr.us/articles/ javascript / unary - add/ - তারিখের নিচে দেখুন।


4
এখানে কেবল দুটি মন্তব্য যুক্ত করতে চান: /ইতিমধ্যে গণিত অপারেটর হিসাবে অ্যানারি অ্যাড + অপারেটরের প্রয়োজন নেই । এছাড়াও, toFixedটাইপটি গুরুত্বপূর্ণ, এমন একটি স্ট্রিং এবং কোনও সংখ্যার
লরেন্স

4
var date = new Date('2012.08.10');
var unixTimeStamp = Math.floor(date.getTime() / 1000);

এই ক্ষেত্রে কেবলমাত্র পুরো সংখ্যাটি ফিরিয়ে দেওয়া গুরুত্বপূর্ণ (সুতরাং একটি সাধারণ বিভাগটি করবে না), এবং কেবলমাত্র অতিবাহিত সেকেন্ডগুলিতে ফিরে আসার জন্য (এই কারণেই এই কোডটি ব্যবহার করে Math.floor()এবং না Math.round())।


3

আপনি ডেট.পার্স () ব্যবহার করতে পারেন তবে এটি যে ইনপুট ফর্ম্যাটগুলি গ্রহণ করে তা বাস্তবায়ন নির্ভর। তবে, আপনি যদি তারিখে রূপান্তর করতে পারেন আইএসও ফর্ম্যাটে (YYYY-MM-DD) বেশিরভাগ বাস্তবায়নের এটি বোঝা উচিত।

দেখুন কেন ডেট.পার্স ভুল ফলাফল দেয়?


2

আপনি ডেট. পার্স () পদ্ধতিটি ব্যবহার করে এটি করতে পারেন।

Date.parse($("#yourCustomDate).val())

তারিখ.পার্স ("03.03.2016") আউটপুট-> 1456959600000

তারিখ.পার্স ("2015-12-12") আউটপুট-> 1449878400000


4
এই উত্তরটি কীভাবে 6 বছর আগে বার্মার প্রদত্ত একটি থেকে আলাদা ?
মকর রাশি


1

পিএইচপি থেকে একটির সাথে টাইমস্ট্যাম্প তুলনা করার পরে, উপরের কোনওটি আমার টাইমজোনটির জন্য সঠিক বলে মনে হচ্ছে না। নীচের কোডটি আমাকে পিএইচপি হিসাবে একই ফলাফল দিয়েছে যা আমি করছি প্রকল্পের জন্য সবচেয়ে গুরুত্বপূর্ণ।

function getTimeStamp(input) {
    var parts = input.trim().split(' ');
    var date = parts[0].split('-');
	var time = (parts[1] ? parts[1] : '00:00:00').split(':');

	// NOTE:: Month: 0 = January - 11 = December.
	var d = new Date(date[0],date[1]-1,date[2],time[0],time[1],time[2]);
	return d.getTime() / 1000;
}

// USAGE::
var start = getTimeStamp('2017-08-10');
var end = getTimeStamp('2017-08-10 23:59:59');

console.log(start + ' - ' + end);

আমি এটি নোডজেএসে ব্যবহার করছি এবং আমাদের 'অস্ট্রেলিয়া / সিডনি' টাইমজোন রয়েছে। সুতরাং, আমাকে .env ফাইল এ যুক্ত করতে হয়েছিল:

TZ = 'Australia/Sydney'

উপরের সমতুল্য:

process.env.TZ = 'Australia/Sydney'

0

টাইমস্ট্যাম্পকে ইউনিক্স টাইমস্ট্যাম্পে রূপান্তর করুন।

const date = 1513787412; const unixDate = new Date(date * 1000);// Dec 20 2020 (object)

রূপান্তর পরে সময়স্ট্যাম্প পেতে const TimeStamp = new Date(date*1000).getTime(); //1513787412000

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