জাভাস্ক্রিপ্টে কীভাবে শুরু এবং দিনের শেষে পাবেন?


271

টাইমস্ট্যাম্পে (GMT) আজ (23:59:59) কীভাবে শুরু হবে এবং শেষ হবে? কম্পিউটার স্থানীয় সময় ব্যবহার করে।

উত্তর:


526
var start = new Date();
start.setHours(0,0,0,0);

var end = new Date();
end.setHours(23,59,59,999);

alert( start.toUTCString() + ':' + end.toUTCString() );

আপনি যদি সেগুলি থেকে ইউটিসি সময় পাওয়ার প্রয়োজন হয় তবে আপনি এটি ব্যবহার করতে পারেন UTC()


24
আমি আপনাকে সুপারিশ করব যে var end = new Date(start.getTime());সময় মতো আপনার একই পয়েন্ট রয়েছে - আপনি যদি শুরু এবং শেষ সূচনাতে তারিখ পরিবর্তন করেন - তবে এটি ঘটতে পারে - get
মার্টিন ডেভিস

@ মার্টিনড্যাভিস যখন সমস্ত স্বাভাবিক অপারেশন হয় সাধারণত প্রায় 0-2 টি টিকিট এর মধ্যে ঘটে থাকে তবে এটি সিপিইউতে কতটা ব্যস্ত তা নির্ভর করে তবে আপনি যদি 1 টি টিক স্পষ্টতা সম্পর্কে উদ্বিগ্ন হন তবে তা করা বুদ্ধিমানের কাজ।
জেসন সেব্রিং

14
আমি ইউনিভার্সাল সময় পাওয়ার setUTCHoursপরিবর্তে ব্যবহার করার পরামর্শ দেবsetHours
সিডোনাল্ডসন

2
জিনিসগুলি পরিবর্তিত হতে পারে তবে আমার জন্য এটি আগের দিনের জন্য ইউটিসি শুরু এবং পূর্ববর্তী দিনের ইউটিসি প্রান্তকে সেট করে।
ডেভিড জে

5
দয়া করে @ সিডোনাল্ডসনের অত্যন্ত গুরুত্বপূর্ণ মন্তব্যটি পড়ুন। setHoursইউটিসি সময়ের পরিবর্তে স্থানীয় সময় নির্ধারণ করায় এটি ব্যবহার করা বিপজ্জনক।
মাইকেল

229

Momentjs লাইব্রেরি ব্যবহার করে, মুহুর্তের বর্তমান তারিখের অবজেক্টের পদ্ধতিগুলি startOf()এবং endOf()পদ্ধতিগুলির মাধ্যমে স্ট্রিংটিকে 'day'আর্গুমেন্ট হিসাবে পাস করে এটি অর্জন করা যেতে পারে :

স্থানীয় জিএমটি:

var start = moment().startOf('day'); // set to 12:00 am today
var end = moment().endOf('day'); // set to 23:59 pm today

ইউটিসির জন্য:

var start = moment.utc().startOf('day'); 
var end = moment.utc().endOf('day'); 

22
জাভাস্ক্রিপ্ট সময় পরিচালনার সাথে সম্পর্কিত সমস্ত জিনিসের জন্য মুহুর্তগুলি ওয়ান স্টপ-শপ। সর্বদা আমদানি মূল্যবান।
ড্যানিয়েল এফ

8
এবং আমাদের .toDate()শেষ তারিখটি পেতে ব্যবহার করা উচিত । var end = moment().endOf('day').toDate();
ইয়াটরাস

5
.unix()সেকেন্ডে ইউনিক্স টাইমস্ট্যাম্প পেতে শেষে যুক্ত করুন :) এর মতো:moment().startOf('day').unix()
লুকাশ লিসিস

5
মুহুর্তের জেএস কোনওভাবেই কাজ করে না যদি আমার একটি পূর্বনির্ধারিত তারিখ অবজেক্ট থাকে যেমন moment(new Date()).endOf("day");কাজ করে না তবে moment().endOf("day");কাজ করে।
বি কেমার

5
@KlasMellbourn একটি নির্দিষ্ট সময় অঞ্চল দিন শুরুর পেতে, আপনি ব্যবহার করতে পারেন moment-timezoneএবং এই কাজের জন্য: moment().tz('America/Chicago').startOf('day').toDate()
চাদ জনসন

8

ব্যবহার luxon.js গ্রন্থাগার, একই প্যারামিটার হিসাবে 'দিন' ক্ষণস্থায়ী দ্বারা startOf এবং endOf পদ্ধতি ব্যবহার করে অর্জন করা যেতে পারে

var DateTime = luxon.DateTime;
DateTime.local().startOf('day').toUTC().toISO(); //2017-11-16T18:30:00.000Z
DateTime.local().endOf('day').toUTC().toISO(); //2017-11-17T18:29:59.999Z
DateTime.fromISO(new Date().toISOString()).startOf('day').toUTC().toISO(); //2017-11-16T18:30:00.000Z

আপনার কেবল স্থানীয় সময় প্রয়োজন হলে .toUTC () অপসারণ করুন

এবং আপনি জিজ্ঞাসা করতে পারেন কেন moment.js নয় , এর জন্য উত্তর এখানে



6

আপনি যদি GMT- র টাইমস্ট্যাম্পগুলিতে কেবল আগ্রহী হন তবে আপনি এটিও করতে পারেন, যা বিভিন্ন ব্যবধানের জন্য আরামদায়কভাবে মানিয়ে নেওয়া যায় (ঘন্টা:, 1000 * 60 * 6012 ঘন্টা: 1000 * 60 * 60 * 12ইত্যাদি)

const interval = 1000 * 60 * 60 * 24; // 24 hours in milliseconds

let startOfDay = Math.floor(Date.now() / interval) * interval;
let endOfDay = startOfDay + interval - 1; // 23:59:59:9999

1
গুরুত্বপূর্ণ সতর্কতা: আপনি কেবল ইউটিসিতে সময় চাইলে এটি কেবলমাত্র কাজ করে। (এই প্রশ্নটির জন্য জিজ্ঞাসা করা হয়েছিল ... তবে আমি মনে করি যে গুগল অনুসন্ধান থেকে এখানে এসেছেন এবং এটি বুঝতে পারেন নি এমন কাউকে আমার সতর্ক করা উচিত।)
কিপ

4

এফওয়াইআই (টভানফসনের মার্জড সংস্করণ)

আপনি যখন ফাংশন কল করছেন তখন এটি আসল তারিখ => তারিখটি ফিরিয়ে দেবে

export const today = {
  iso: {
    start: () => new Date(new Date().setHours(0, 0, 0, 0)).toISOString(),
    now: () => new Date().toISOString(),
    end: () => new Date(new Date().setHours(23, 59, 59, 999)).toISOString()
  },
  local: {
  start: () => new Date(new Date(new Date().setHours(0, 0, 0, 0)).toString().split('GMT')[0] + ' UTC').toISOString(),
  now: () => new Date(new Date().toString().split('GMT')[0] + ' UTC').toISOString(),
  end: () => new Date(new Date(new Date().setHours(23, 59, 59, 999)).toString().split('GMT')[0] + ' UTC').toISOString()
  }
}

// ব্যবহারবিধি

today.local.now(); //"2018-09-07T01:48:48.000Z" BAKU +04:00
today.iso.now(); // "2018-09-06T21:49:00.304Z" * 

* এটি জাভা 8-তে তাত্ক্ষণিক সময়ের ধরণের জন্য প্রযোজ্য যা আপনার অঞ্চলের উপর নির্ভর করে আপনার স্থানীয় সময়কে স্বয়ংক্রিয়ভাবে রূপান্তর করে ((যদি আপনি গ্লোবাল অ্যাপ লেখার পরিকল্পনা করছেন)


0

তারিখের কারসাজির জন্য আমি ডেট-এফএনএস লাইব্রেরিটি পছন্দ করি । এটি সত্যিই দুর্দান্ত মডুলার এবং ধারাবাহিক সরঞ্জাম। আপনি এভাবে দিনের শুরু এবং শেষ পেতে পারেন:

var startOfDay = dateFns.startOfDay;
var endOfDay = dateFns.endOfDay;

console.log('start of day ==> ', startOfDay(new Date('2015-11-11')));
console.log('end of day ==> ', endOfDay(new Date('2015-11-11')));
<script src="https://cdnjs.cloudflare.com/ajax/libs/date-fns/1.29.0/date_fns.min.js"></script>


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