ডিফল্টরূপে, মোমেন্টজজেএস স্থানীয় সময়ে পার্স করে। যদি কেবল একটি তারিখের স্ট্রিং (সময় না দিয়ে) সরবরাহ করা হয় তবে সময়টি মধ্যরাতে ডিফল্ট হয়।
আপনার কোডে, আপনি একটি স্থানীয় তারিখ তৈরি করেন এবং তারপরে এটি ইউটিসি টাইমজোনতে রূপান্তর করুন (বাস্তবে, এটি মুহূর্তটিকে ইউটিসি মোডে স্যুইচ করে তোলে ), সুতরাং যখন এটি ফর্ম্যাট করা হয়, তখন এটি স্থানান্তরিত হয় (আপনার স্থানীয় সময়ের উপর নির্ভর করে) সামনে বা পিছনে
স্থানীয় সময় অঞ্চলটি যদি ইউটিসি + এন (এন ইতিবাচক সংখ্যা হিসাবে থাকে) এবং আপনি কেবলমাত্র তারিখের একটি স্ট্রিং পার্স করেন তবে আপনি আগের তারিখটি পাবেন।
এটি চিত্রিত করার জন্য এখানে কয়েকটি উদাহরণ দেওয়া হয়েছে (আমার স্থানীয় সময় অফসেটটি ডিএসটি চলাকালীন ইউটিসি + 3):
>>> moment('07-18-2013', 'MM-DD-YYYY').utc().format("YYYY-MM-DD HH:mm")
"2013-07-17 21:00"
>>> moment('07-18-2013 12:00', 'MM-DD-YYYY HH:mm').utc().format("YYYY-MM-DD HH:mm")
"2013-07-18 09:00"
>>> Date()
"Thu Jul 25 2013 14:28:45 GMT+0300 (Jerusalem Daylight Time)"
আপনি যদি ডেট-টাইম স্ট্রিংটি ইউটিসি হিসাবে ব্যাখ্যা করতে চান তবে আপনার এটি সম্পর্কে সুস্পষ্ট হওয়া উচিত:
>>> moment(new Date('07-18-2013 UTC')).utc().format("YYYY-MM-DD HH:mm")
"2013-07-18 00:00"
বা, যেমন ম্যাট জনসন তার উত্তরে উল্লেখ করেছেন, আপনি এটি প্রথমে ইউটিসি তারিখ হিসাবে পার্স করতে পারেন ( এবং সম্ভবত হওয়া উচিত ) moment.utc()
অস্পষ্টতা রোধের জন্য দ্বিতীয় যুক্তি হিসাবে ফর্ম্যাট স্ট্রিংটিকে অন্তর্ভুক্ত করে এবং অন্তর্ভুক্ত করতে পারেন।
>>> moment.utc('07-18-2013', 'MM-DD-YYYY').format("YYYY-MM-DD HH:mm")
"2013-07-18 00:00"
অন্য পথে যেতে এবং কোনও ইউটিসি তারিখকে স্থানীয় তারিখে রূপান্তর করতে, আপনি local()
নিম্নলিখিত পদ্ধতিটি ব্যবহার করতে পারেন :
>>> moment.utc('07-18-2013', 'MM-DD-YYYY').local().format("YYYY-MM-DD HH:mm")
"2013-07-18 03:00"
toString()
পরে আপনার দরকারformat()
(এটি ইতিমধ্যে একটি স্ট্রিং দেয়)।