برنامه نویسی

مدیریت تاریخ، زمان و منطقه زمانی با استفاده از Moment.js

کار با تاریخ و زمان در جاوا اسکریپت همیشه کمی پیچیده بوده است. به همین دلیل است که اگر در StackOverflow یک سوال مربوط به تاریخ بپرسید، اغلب پاسخ را خواهید شنید.از Moment.js استفاده کنید“.

Moment.js چیست؟

Moment.js یک جامعه منبع باز بزرگ است که با تاریخ و زمان در جاوا اسکریپت کار می کند. این به شما امکان می دهد با استفاده از یک API تمیز و مختصر، تاریخ ها و زمان ها را تجزیه، اعتبارسنجی، دستکاری و نمایش دهید.

در این وبلاگ به شما نشان خواهم داد که چگونه با Moment.js راه اندازی و اجرا کنید، و همچنین چندین مورد از موارد استفاده رایج آن را نشان می دهم.

شروع به کار با Moment.js

Moment.js را می توان از مرورگر و همچنین از داخل یک برنامه Node اجرا کرد. برای استفاده از آن با Node، ماژول را با استفاده از دستور هر کسی که زیر است نصب کنید.

npm install moment

yarn add moment
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس، به سادگی require() or import و مطابق شکل زیر از آن در برنامه خود استفاده کنید.

const moment = require('moment') or import moment from 'moment';
const today = moment();
console.log(today.format());

// 2023-05-05T10:55:16+05:30
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

قالب بندی تاریخ

Moment.js فرآیند تبدیل تاریخ به هر فرمت خاصی را ساده کرده است. همانطور که در مثال زیر نشان داده شده است، تبدیل فرمت تاریخ با Moment ساده است.

moment().format('MMMM Do YYYY, h:mm:ss a'); // May 5th 2023, 11:04:44 am
moment().format('dddd');                    // Friday
moment().format("MMM Do YY");               // May 5th 23
moment().format('YYYY [escaped] YYYY');     // 2023 escaped 2023
moment().format();   // 2023-05-05T10:55:16+05:30                     
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

دستکاری تاریخ ها

تعدادی گزینه برای دستکاری وجود دارد moment هدف – شی. به عنوان مثال، می توانید روز، ماه، سال و غیره را اضافه یا کم کنید add() و subtract() مواد و روش ها. مثال زیر نشان می دهد که چگونه هفت روز، ماه یا هفته به تاریخ فعلی اضافه می شود.

moment().add(7, 'days');    // adds 7 days to current date
moment().add(7, 'months');  // adds 7 months to current date
moment().add(7, 'years');   // adds 7 years to current date
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

به طور مشابه، subtract() روش در زیر نشان داده شده است.

moment().subtract(7, 'days');   // subtracts 7 days to current date
moment().subtract(7, 'months'); // subtracts 7 months to current date
moment().subtract(7, 'years');  // subtracts 7 years to current date
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توجه داشته باشید که هر یک از مثال های بالا، را برمی گرداند moment هدف – شی. اگر یک تاریخ قابل خواندن برای انسان می خواهید، باید آن را بر اساس آن قالب بندی کنید.

زمان از هم اکنون

یکی دیگر از وظایف رایج تعیین مدت زمان بین دو تاریخ است. برای محاسبه زمان از تاریخ جاری، Moment.js از روشی به نام استفاده می کند fromNow().

moment('2023.05.03', 'YYYY.MM.DD').fromNow() // 2 days ago
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اگر عبور کنیم true به عنوان یک آرگومان، می توانیم مقدار را بدون پسوند دریافت کنیم.

moment('2023.05.03', 'YYYY.MM.DD').fromNow(true) // 2 days 
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پشتیبانی زبان بین المللی

Moment.js عالی ارائه می دهد i18n support. این به شما امکان می دهد یک را اختصاص دهید global language یا زبان را برای یک شی لحظه خاص تنظیم کنید. به طور پیش فرض از زبان انگلیسی پشتیبانی می کند. اگر می خواهید از هر زبان دیگری پشتیبانی کنید، مقادیر کلیدی آن زبان خاص را به آن اختصاص دهید moment.locale. مثال خلاصه شده زیر که از اسناد Moment.js گرفته شده است، نشان می‌دهد که چگونه می‌توان برای فرانسوی پشتیبانی اضافه کرد.

import moment from 'moment';

moment.locale('fr', {
  months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
  weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
  relativeTime : {
      future : 'dans %s',
      past : 'il y a %s',
      s : 'quelques secondes',
      m : 'une minute',
      mm : '%d minutes',
      h : 'une heure',
      hh : '%d heures',
      d : 'un jour',
      dd : '%d jours',
      M : 'un mois',
      MM : '%d mois',
      y : 'un an',
      yy : '%d ans'
  }
});

moment.locale('fr');

moment(1316116057189).fromNow(); // il y a une heure
moment.locale('en');
moment(1316116057189).fromNow(); // an hour ago
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

منطقه زمانی لحظه

Moment-Timezone یک افزونه برای Moment.js است. می تواند تاریخ ها را در هر منطقه زمانی تجزیه و نمایش دهد. برای استفاده از آن، ماژول را با استفاده از دستور زیر نصب کنید.

npm install moment-timezone --save   # npm
yarn add moment-timezone             # Yarn
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

قالب بندی تاریخ ها در هر منطقه زمانی

var jun = moment("2014-06-01T12:00:00Z");
var dec = moment("2014-12-01T12:00:00Z");

jun.tz('America/Los_Angeles').format('ha z');  // 5am PDT
dec.tz('America/Los_Angeles').format('ha z');  // 4am PST

jun.tz('America/New_York').format('ha z');     // 8am EDT
dec.tz('America/New_York').format('ha z');     // 7am EST

jun.tz('Asia/Tokyo').format('ha z');           // 9pm JST
dec.tz('Asia/Tokyo').format('ha z');           // 9pm JST

jun.tz('Australia/Sydney').format('ha z');     // 10pm EST
dec.tz('Australia/Sydney').format('ha z');     // 11pm EST
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تبدیل تاریخ بین مناطق زمانی

var newYork    = moment.tz("2014-06-01 12:00", "America/New_York");
var losAngeles = newYork.clone().tz("America/Los_Angeles");
var london     = newYork.clone().tz("Europe/London");

newYork.format();    // 2014-06-01T12:00:00-04:00
losAngeles.format(); // 2014-06-01T09:00:00-07:00
london.format();     // 2014-06-01T17:00:00+01:00
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نتیجه

Moment.js واقعاً یک کتابخانه عالی است که دستکاری ها و اعتبارسنجی های مربوط به تاریخ و زمان را ساده می کند. در این مقاله، ما بر روی برخی از ویژگی‌های Moment.js تمرکز کردیم که به تجزیه، اعتبارسنجی و دستکاری تاریخ‌ها و زمان‌ها در مرورگر و برنامه‌های Node.js کمک می‌کند. تعدادی افزونه مفید نیز برای Moment.js موجود است. برای اطلاعات بیشتر در مورد Moment.js، خواننده به مستندات کتابخانه هدایت می شود.

با تشکر از خواندن این پست، امیدوارم برای شما جالب بوده باشد!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا