javascript - meaning - Moment.js তারিখ বস্তুর রূপান্তর



momentjs (5)

Moment.js ব্যবহার করে আমি টাইমজোনগুলির সাথে একটি তারিখের বস্তুর একটি সঠিক মুহূর্ত বস্তুর রূপান্তর করতে পারি না। আমি সঠিক তারিখ পেতে পারি না।

উদাহরণ:

var oldDate = new Date(),
    momentObj = moment(oldDate).tz("MST7MDT"),
    newDate = momentObj.toDate();
console.log("start date " + oldDate)
console.log("Format from moment with offset " + momentObj.format())
console.log("Format from moment without offset " + momentObj.utc().format())
console.log("(Date object) Time with offset " + newDate)
console.log("(Date object) Time without offset "+ moment.utc(newDate).toDate())

Answer #1

আমি আমার তারিখ স্ট্রিং মধ্যে টাইমজোন তথ্য আছে প্রয়োজন। আমি মূলত moment.tz(dateStr, 'America/New_York').toString(); ব্যবহার moment.tz(dateStr, 'America/New_York').toString(); কিন্তু তারপর আমি মুহূর্ত ফিরে যে স্ট্রিং ফিডিং সম্পর্কে ত্রুটি পেতে শুরু।

আমি moment.tz(dateStr, 'America/New_York').toDate(); চেষ্টা moment.tz(dateStr, 'America/New_York').toDate(); কিন্তু তারপর আমি টাইমজোন তথ্য হারিয়ে যা আমি প্রয়োজন।

টাইমজোন সহ টাইমজোন সহ একটি ব্যবহারযোগ্য তারিখ স্ট্রিং ফেরত দেওয়া একমাত্র সমাধান মুহুর্তে ফিরিয়ে আনা যেতে পারে moment.tz(dateStr, 'America/New_York').format();


Answer #2

একটি মুহূর্ত বস্তুর একটি তারিখ বস্তুর রূপান্তর করতে এটি ব্যবহার করুন:

http://momentjs.com/docs/#/displaying/as-javascript-date/ থেকে

moment().toDate();

উৎপাদনের:

Tue Nov 04 2014 14:04:01 GMT-0600 (CST)

Answer #3

যতক্ষণ আপনি আপনার পছন্দের জোনের ডেটা দিয়ে moment-timezone করেছেন , ততক্ষণ আপনার কোড প্রত্যাশিত হিসাবে কাজ করে।

আপনি সঠিকভাবে সময় অঞ্চলটিতে রূপান্তর করছেন, যা momentObj.format() থেকে আউটপুট দ্বিতীয় লাইনে প্রতিফলিত হয়।

ইউটিসি তে স্যুইচিং কেবল অফসেটটি ছাড়বে না, এটি ইউটিসি সময় অঞ্চলে ফিরে যাবে। যদি আপনি এটি করতে যাচ্ছেন তবে আপনাকে মূল .tz() কল করতে হবে না। আপনি শুধু moment.utc() করতে পারে।

সম্ভবত আপনি শুধু আউটপুট বিন্যাস স্ট্রিং পরিবর্তন করার চেষ্টা করছেন? যদি তাই হয়, তবে format পদ্ধতিতে আপনি যে প্যারামিটারগুলি চান তা নির্দিষ্ট করুন:

momentObj.format("YYYY-MM-DD HH:mm:ss")

আপনার কোডের লাইনের শেষের দিকে - আপনি যখন toDate() ব্যবহার করে একটি Date বস্তুতে ফিরে যান, তখন আপনি toDate() এর আচরণকে ছেড়ে দিচ্ছেন এবং জাভাস্ক্রিপ্টের আচরণে ফিরে যাচ্ছেন। একটি জাভাস্ক্রিপ্ট Date অবজেক্ট সর্বদা এটি চলমান কম্পিউটারের স্থানীয় সময় অঞ্চলে মুদ্রণ করা হবে। মুহুর্তে কিছুই নেই।

অন্য কয়েকটি ছোট জিনিস:

  • মুহুর্তে কন্সট্রকটর একটি Date নিতে পারে , এটি সাধারণত এক ব্যবহার করা ভাল। "এখন" জন্য, moment(new Date()) ব্যবহার করবেন না moment(new Date()) । পরিবর্তে, শুধু moment() ব্যবহার করুন moment() । উভয় কাজ করবে তবে এটি অপ্রয়োজনীয়ভাবে অপ্রয়োজনীয়। আপনি যদি একটি স্ট্রিং থেকে পার্স করা হয়, তবে সেই স্ট্রিংটিকে মুহূর্তে সরাসরি পাস করুন। প্রথমে একটি Date এটি বিশ্লেষণ করার চেষ্টা করবেন না। আপনি আরো নির্ভরযোগ্য হতে মুহূর্ত এর পসার পাবেন।

  • MST7MDT মত সময় অঞ্চল পিছনে সামঞ্জস্য কারণের জন্য আছে। তারা POSIX স্টাইল টাইম জোন থেকে স্টেম, এবং তাদের মধ্যে মাত্র কয়েকটি TZDB ডেটাতে রয়েছে। একেবারে প্রয়োজন না হওয়া পর্যন্ত, America/Denver মতো একটি কী ব্যবহার করা উচিত।


Answer #4

যেহেতু মুহুর্ত জাভাস্ক্রিপ্ট তারিখ অবজেক্ট উপর কোন নিয়ন্ত্রণ আছে যেহেতু আমি এই কাছাকাছি একটি কাজ খুঁজে পাওয়া যায় নি।

const currentTime = new Date();    
const convertTime = moment(currentTime).tz(timezone).format("YYYY-MM-DD HH:mm:ss");
const convertTimeObject = new Date(convertTime);

এটি আপনাকে রূপান্তরিত সময়ের সাথে একটি জাভাস্ক্রিপ্ট তারিখ অবজেক্ট দেবে


Answer #5
let dateVar = moment('any date value');
let newDateVar = dateVar.utc().format();

সুন্দর এবং পরিষ্কার !!!!





momentjs