formatDate / timestampToTime
تاریخ را با الگویی از نشانهها میآراید.
API
formatDate(value?, pattern?)
| پارامتر | توضیح | نوع | پیشفرض |
|---|---|---|---|
value | برچسب زمانی، رشتهٔ تاریخ یا Date؛ برای اکنون آن را ندهید | number | string | Date | اکنون |
pattern | الگوی نشانهها | string | 'YYYY-MM-DD HH:mm:ss' |
| نشانه | معنا | نشانه | معنا |
|---|---|---|---|
YYYY/YY | سال | mm/m | دقیقه |
MM/M | ماه (۱–۱۲) | ss/s | ثانیه |
DD/D | روز | SSS | میلیثانیه |
HH/H | ساعت (۰–۲۳) | A/a | AM/PM · am/pm |
hh/h | ساعت (۱–۱۲) | [...] | متن عینی |
اگر ورودی تجزیهشدنی نباشد، 'Invalid Date' برمیگرداند.
timestampToTime(timestamp?)
منسوخ است. یک Date برمیگرداند که متد format به نمونهاش چسبانده شده است.
نمونه
js
import { formatDate } from 'ranuts';
formatDate(); // '2026-07-25 14:30:00'
formatDate(1753425000000, 'YYYY/MM/DD'); // '2026/07/25'
formatDate(new Date(), 'YYYY[年]MM[月]DD[日] hh:mm a');
formatDate('not a date'); // 'Invalid Date'یادداشتها
- بزرگی و کوچکی حروف مهم است.
MMماه است وmmدقیقه؛HH۲۴ساعته است وhh۱۲ساعته. - الگو در یک گذر جایگزین میشود، پس مقداری که تازه نوشته شده هرگز به دام نشانهای پس از آن نمیافتد.
- متن عینی را در
[]بگذارید تا حرفهایش از جایگزینی کنار بمانند.
در ۰٫۳ درست و جایگزین شد
آرایندهٔ پیشین شش فراخوانی .replace() را با پرچم بیاعتنا به بزرگی حروف به هم زنجیر میکرد. دو پیامد داشت: الگوی پسین میتوانست رقمهایی را بگیرد که الگوی پیشین همان دم نوشته بود، و /M+/g و /m+/g و /D+/gi روی هم میافتادند — پس الگویی با حروف کوچک مانند yyyy-mm-dd سال-دقیقه-روز میداد.
timestampToTime منسوخ است و جایش formatDate را بگیرید: چسباندن متد به نمونهٔ Date از سریالسازی جان به در نمیبرد و نوعش را نمیتوان فراتر از Function نوشت. format آن اکنون کار را به formatDate میسپارد، پس فراخوانندگان کنونی هم رسیدگی درستشدهٔ نشانهها را میگیرند.