সেকেন্ডে দুটি তারিখের মধ্যে সময়ের পার্থক্য পান


149

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

  • একটি প্রাথমিক তারিখ নির্ধারণ করুন যা এখন হবে;
  • একটি চূড়ান্ত তারিখ নির্ধারণ করুন যা প্রাথমিক তারিখ এবং ভবিষ্যতে কিছু সেকেন্ডের পরিমাণ হবে (উদাহরণস্বরূপ 15 বলে নেওয়া যাক)
  • এই দুটি (সেকেন্ডের পরিমাণ) এর মধ্যে পার্থক্য পান

তারিখগুলি কেন এটির সাথে এটি করা হচ্ছে তার কারণ কারণ চূড়ান্ত তারিখ / সময়টি কিছু অন্যান্য ভেরিয়েবলের উপর নির্ভর করে এবং এটি কখনই এক হয় না (এটি কোনও ব্যবহারকারী কত দ্রুত কাজ করে তার উপর নির্ভর করে) এবং আমি অন্যান্য জিনিসগুলির জন্য প্রাথমিক তারিখটিও সঞ্চয় করি।

আমি এরকম কিছু চেষ্টা করছি:

var _initial = new Date(),
    _initial = _initial.setDate(_initial.getDate()),
    _final = new Date(_initial);
    _final = _final.setDate(_final.getDate() + 15 / 1000 * 60);

var dif = Math.round((_final - _initial) / (1000 * 60));

বিষয়টি হ'ল আমি কখনই সঠিক পার্থক্য পাই না। আমি ভাগ করে নেওয়ার চেষ্টা করেছি 24 * 60যার দ্বারা আমাকে কয়েক সেকেন্ড রেখে যাবে, তবে আমি কখনই এটি ঠিক করি না। তাহলে আমার যুক্তি দিয়ে কী ভুল? অনেক দেরি হওয়ায় আমি হয়ত কিছু বোকা ভুল করছি, তবে এটি আমাকে বিরক্ত করে যে আমি এটি কাজ করতে পারি না :)


2
অপারেশন ক্রম কী।
ডিলান ক্রস

1
সুতরাং আপনি একটি টাইমস্ট্যাম্প রাখতে চান, 15 সেকেন্ড যোগ করুন এবং তারপরে সেকেন্ডে কী পার্থক্য তা দেখুন। আমি বলব প্রতিকূলতা বেশি যে পার্থক্যটি হবে .... এটির জন্য অপেক্ষা করুন .... 15 সেকেন্ড?
অ্যাডিনিও


1
আপনি যা করতে চাইছেন তা আমি সত্যিই বুঝতে পারি (আমি মনে করি) তবে আপনি যদি এখনই ইউনিক্সের সময় হ'ল নতুন তারিখ () গ্রহণ করেন, 15 সেকেন্ড যোগ করুন এবং এখনই পার্থক্যটি যাচাই করুন, পার্থক্যটি 15 সেকেন্ড হবে (গণনা করতে এটি মাইনাস মিলি সেকেন্ডে নেমেছে), তবে আমি অনুমান করছি যে আপনার উদ্দেশ্যটি ভবিষ্যতে কোনওভাবেই এটির তুলনা করা।
অ্যাডেনেও

1
আমার কথাটি প্রমাণ করার জন্য আমি সত্যিই এটি পাই না, আপনার উপরের উদাহরণের জন্য এখানে একটি কার্যকরী সারণী রয়েছে । ব্যবহারকারী যদি কিছু করতে কতক্ষণ সময় নিয়েছিলেন তা যদি আপনি চেষ্টা করার চেষ্টা করছেন, ব্যবহারকারী সাধারণত অপারেশন শুরু করার সময় এবং টাইমস্ট্যাম্প ব্যবহারকারীর অপারেশনটি শেষ করার পরে এবং তার সাথে তুলনা করতে পারেন এবং আপনি জানেন যে এটি কতটা সময় নিয়েছে । হ্যাকটি 15 সেকেন্ডের জন্য কী?
অ্যাডিনিও

উত্তর:


283

কোড

var startDate = new Date();
// Do your operations
var endDate   = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;

অথবা (endDate - startDate) / 1000আপনি টাইপ স্ক্রিপ্ট ব্যবহার না করা পর্যন্ত মন্তব্যে নির্দেশিত হিসাবে সরল ।


ব্যাখ্যা

আপনাকে অবজেক্টগুলির getTime()জন্য পদ্ধতিটি কল করতে হবে Dateএবং তারপরে কেবল তাদের বিয়োগ করে 1000 দিয়ে বিভক্ত করুন (যেহেতু এটি মূলত মিলিসেকেন্ডে রয়েছে)। অতিরিক্ত হিসাবে, আপনি যখন getDate()পদ্ধতিটি কল করছেন, আপনি আসলে getTime()পদ্ধতিটি কল করা থেকে শুরু করার আগের সময়ের বিপরীতে 1 থেকে 31 (শূন্য ভিত্তিক নয়) এর মধ্যে পূর্ণসংখ্যা হিসাবে মাসের দিনটি পেয়ে যাচ্ছেন , জানুয়ারী 1 ম 1970, 00:00 থেকে মিলসেকেন্ডের সংখ্যা উপস্থাপন করছে


অর্থহীন বাক্য

আপনার তারিখ সম্পর্কিত ক্রিয়াকলাপগুলি কিসের উপর নির্ভর করে আপনি লাইব্রেরি যেমন ডেট.জেস বা মুহুর্ত.জেসগুলিকে একীভূত করতে বিনিয়োগ করতে চাইতে পারেন যা জিনিসগুলিকে এত সহজ করে তোলে things বিকাশকারীদের তবে এটি কেবল ব্যক্তিগত পছন্দের বিষয়।

উদাহরণস্বরূপ moment.js এ আমরা moment1.diff(moment2, "seconds")যা করব যা সুন্দর।


এই উত্তরের জন্য দরকারী ডক্স


14
গেটটাইমের কোনও প্রয়োজন নেই , তারিখগুলি একে অপরের কাছ থেকে বিয়োগ করা যেতে পারে কারণ - অপারেটর তাদের সংখ্যায় বাধ্য করবে।
রবিজি 22:25

3
গেটটাইম প্রয়োজনীয় যদি আপনি টাইপ স্ক্রিপ্ট ব্যবহার করেন তবে এটি কোনও সংখ্যা, বা
এনাম বাদে

আপনি ব্যবহার করতে পারেন .valueOf(), যা -অপারেটর যেকোন ক্ষেত্রে কল করবে ...
হেরেটিক বানর ২

1
আমাদের যদি ঘন্টা / মিনিটের সময় পার্থক্যগুলির প্রয়োজন হয় তবে কীভাবে ...? আমি কি এটি 60 বা এর একাধিক দ্বারা বিভক্ত করা উচিত ...? @ জুয়ান
gumuruh

দয়া করে স্বতন্ত্র প্রশ্ন হিসাবে নতুন সন্দেহ যুক্ত করুন, তবে এটি সম্ভবত নকল হিসাবে বন্ধ হয়ে যাবে, তাই এখানে একবার দেখুন stackoverflow.com/questions/1322732/…
জুয়ান কর্টস

5

আপনি new Date().getTime()টাইমস্ট্যাম্পগুলি পাওয়ার জন্য ব্যবহার করতে পারেন । তারপর আপনি শেষ মধ্যে পার্থক্য নিরূপণ শুরু এবং পরিশেষে টাইমস্ট্যাম্প যা রুপান্তর করতে পারেন msমধ্যে s

const start = new Date().getTime();
const end = new Date().getTime();

const diff = end - start;
const seconds = Math.floor(diff / 1000 % 60);


1

কোডের নীচে দ্বিতীয়টির সাথে সময় পার্থক্য দেবে।

var date1 = new Date(); // current date
var date2 = new Date("06/26/2018"); // mm/dd/yyyy format
var timeDiff = Math.abs(date2.getTime() - date1.getTime()); // in miliseconds
var timeDiffInSecond = Math.ceil(timeDiff / 1000); // in second

alert(timeDiffInSecond );

0

উচ্চ স্তরের প্রোগ্রামিং ভাষা থেকে ডেডিকেটেড ফাংশনগুলি ব্যবহার করে দেখুন। জাভাস্ক্রিপ্ট .getSeconds();স্যুট এখানে:

var specifiedTime = new Date("November 02, 2017 06:00:00");
var specifiedTimeSeconds = specifiedTime.getSeconds(); 

var currentTime = new Date();
var currentTimeSeconds = currentTime.getSeconds(); 

alert(specifiedTimeSeconds-currentTimeSeconds);

0

মুহুর্তগুলি ব্যবহার করে এখন থেকে 10 মিনিটের মধ্যে সময়ের পার্থক্য

let start_time = moment().format('YYYY-MM-DD HH:mm:ss');
let next_time = moment().add(10, 'm').format('YYYY-MM-DD HH:mm:ss');

let diff_milliseconds = Date.parse(next_time) - Date.parse(star_time);
let diff_seconds = diff_milliseconds * 1000;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.