forked from Yara724/api
YARA-1258
This commit is contained in:
17
src/helpers/date-jalali.spec.ts
Normal file
17
src/helpers/date-jalali.spec.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { toJalaliDateAndTime } from "./date-jalali";
|
||||
|
||||
describe("toJalaliDateAndTime", () => {
|
||||
it("always formats timestamps in Asia/Tehran regardless of server timezone", () => {
|
||||
expect(toJalaliDateAndTime("2026-08-10T12:30:45.000Z")).toEqual([
|
||||
"1405/05/19",
|
||||
"16:00",
|
||||
]);
|
||||
});
|
||||
|
||||
it("uses the Tehran calendar day when UTC and Tehran dates differ", () => {
|
||||
expect(toJalaliDateAndTime("2026-08-10T21:30:00.000Z")).toEqual([
|
||||
"1405/05/20",
|
||||
"01:00",
|
||||
]);
|
||||
});
|
||||
});
|
||||
@@ -1,3 +1,5 @@
|
||||
import { IRAN_TIMEZONE } from "./iran-datetime";
|
||||
|
||||
/**
|
||||
* Converts an ISO date string or Date to Jalali (Persian) date and time.
|
||||
* @param input - ISO date string (e.g. 2026-02-08T13:51:20.747+00:00) or Date
|
||||
@@ -70,6 +72,7 @@ export function jalaliToGregorianDate(
|
||||
*/
|
||||
export function toJalaliDate(d: Date): string {
|
||||
const persianDate = d.toLocaleDateString("fa-IR", {
|
||||
timeZone: IRAN_TIMEZONE,
|
||||
year: "numeric",
|
||||
month: "2-digit",
|
||||
day: "2-digit",
|
||||
@@ -81,9 +84,12 @@ export function toJalaliDate(d: Date): string {
|
||||
* Converts a Date to 24h time string (e.g. 13:37).
|
||||
*/
|
||||
export function toJalaliTime(d: Date): string {
|
||||
const hours = d.getHours().toString().padStart(2, "0");
|
||||
const minutes = d.getMinutes().toString().padStart(2, "0");
|
||||
return `${hours}:${minutes}`;
|
||||
return new Intl.DateTimeFormat("en-GB", {
|
||||
timeZone: IRAN_TIMEZONE,
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
hourCycle: "h23",
|
||||
}).format(d);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user