parent
							
								
									48a6d18c24
								
							
						
					
					
						commit
						89105840cc
					
				| 
						 | 
				
			
			@ -11,7 +11,7 @@ const mertypes = [ "a", "A" ];
 | 
			
		|||
/**
 | 
			
		||||
 * Possible formats for the date
 | 
			
		||||
 */
 | 
			
		||||
export type meridiemType = (typeof mertypes)[number];
 | 
			
		||||
export type meridiemType = "a" | "A";
 | 
			
		||||
export const isMeridiemType = (x: any): x is meridiemType => mertypes.includes(x);
 | 
			
		||||
 | 
			
		||||
// =-=-=-=-=-=-=-=-=-=-= [ Hours ] =-=-=-=-=-=-=-=-=-=-=
 | 
			
		||||
| 
						 | 
				
			
			@ -19,19 +19,19 @@ const hourtypes = [ "g", "G", "h", "H" ];
 | 
			
		|||
/**
 | 
			
		||||
 * Possible formats for the date
 | 
			
		||||
 */
 | 
			
		||||
export type hourType = (typeof hourtypes)[number];
 | 
			
		||||
export type hourType = "g" | "G" | "h" | "H";
 | 
			
		||||
export const isHourType = (x: any): x is hourType => hourtypes.includes(x);
 | 
			
		||||
 | 
			
		||||
// =-=-=-=-=-=-=-=-=-=-= [ Minutes ] =-=-=-=-=-=-=-=-=-=-=
 | 
			
		||||
const minutetypes = [ "g", "G", "h", "H" ];
 | 
			
		||||
const minutetypes = [ "i" ];
 | 
			
		||||
/**
 | 
			
		||||
 * Possible formats for the date
 | 
			
		||||
 */
 | 
			
		||||
export type minuteType = (typeof minutetypes)[number];
 | 
			
		||||
export type minuteType = "i";
 | 
			
		||||
export const isMinuteType = (x: any): x is minuteType => minutetypes.includes(x);
 | 
			
		||||
 | 
			
		||||
// =-=-=-=-=-=-=-=-=-=-= [ Seconds ] =-=-=-=-=-=-=-=-=-=-=
 | 
			
		||||
const secondtypes = [ "g", "G", "h", "H" ];
 | 
			
		||||
const secondtypes = [ "s" ];
 | 
			
		||||
/**
 | 
			
		||||
 * Possible formats for the date
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			@ -47,7 +47,7 @@ const dtypes = [ "j", "d", "D", "l", "w" ];
 | 
			
		|||
/**
 | 
			
		||||
 * Possible formats for the date
 | 
			
		||||
 */
 | 
			
		||||
export type dateType = (typeof dtypes)[number];
 | 
			
		||||
export type dateType = "j" | "d" | "D" | "l" | "w";
 | 
			
		||||
export const isDateType = (x: any): x is dateType => dtypes.includes(x);
 | 
			
		||||
 | 
			
		||||
// =-=-=-=-=-=-=-=-=-=-= [ Month ] =-=-=-=-=-=-=-=-=-=-=
 | 
			
		||||
| 
						 | 
				
			
			@ -55,7 +55,7 @@ const mtypes = [ "n", "m", "M", "F" ];
 | 
			
		|||
/**
 | 
			
		||||
 * Possible formats for the month
 | 
			
		||||
 */
 | 
			
		||||
export type monthType = (typeof mtypes)[number];
 | 
			
		||||
export type monthType = "n" | "m" | "M" | "F";
 | 
			
		||||
export const isMonthType = (x: any): x is monthType => mtypes.includes(x);
 | 
			
		||||
 | 
			
		||||
// =-=-=-=-=-=-=-=-=-=-= [ Year ] =-=-=-=-=-=-=-=-=-=-=
 | 
			
		||||
| 
						 | 
				
			
			@ -63,5 +63,5 @@ const yeartypes = [ "L", "o", "y", "Y" ];
 | 
			
		|||
/**
 | 
			
		||||
 * Possible formats for the year
 | 
			
		||||
 */
 | 
			
		||||
export type yearType = (typeof yeartypes)[number];
 | 
			
		||||
export type yearType = "L" | "o" | "y" | "Y";
 | 
			
		||||
export const isYearType = (x: any): x is yearType => yeartypes.includes(x);
 | 
			
		||||
							
								
								
									
										36
									
								
								src/index.ts
								
								
								
								
							
							
						
						
									
										36
									
								
								src/index.ts
								
								
								
								
							| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
import { dayDictionary }       from "./Dictionaries/dateDictionary";
 | 
			
		||||
import { monthDictionary }     from "./Dictionaries/monthDictionary";
 | 
			
		||||
import { commonDateFormats, dateType, isDateType, isMonthType, isYearType, meridiemType, monthType, yearType } from "./Types/formatTypes";
 | 
			
		||||
import { commonDateFormats, dateType, hourType, isDateType, isHourType, isMeridiemType, isMonthType, isYearType, meridiemType, monthType, yearType } from "./Types/formatTypes";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -60,6 +60,10 @@ export default class TymeJS {
 | 
			
		|||
                formattedDate += this.getMonth(char);
 | 
			
		||||
            else if ( isYearType(char) )
 | 
			
		||||
                formattedDate += this.getYear(char);
 | 
			
		||||
            else if ( isMeridiemType(char) )
 | 
			
		||||
                formattedDate += this.getMeridiem(char);
 | 
			
		||||
            else if ( isHourType(char) )
 | 
			
		||||
                formattedDate += this.getHour(char);
 | 
			
		||||
            else {
 | 
			
		||||
                // Just append the char to the result
 | 
			
		||||
                formattedDate += char;
 | 
			
		||||
| 
						 | 
				
			
			@ -75,11 +79,39 @@ export default class TymeJS {
 | 
			
		|||
    // ############################## [ Time Formats ] ##############################
 | 
			
		||||
 | 
			
		||||
    public getMeridiem(t: meridiemType): string {
 | 
			
		||||
        
 | 
			
		||||
        // Get the current meridiem
 | 
			
		||||
        let meridiem = ((this.ts.getHours() + 11) % 12 + 1) > 12 ? "pm" : "am";
 | 
			
		||||
        // Check which format to return
 | 
			
		||||
        if ( t === "A" ) {
 | 
			
		||||
            return meridiem.toUpperCase();
 | 
			
		||||
        } else if ( t === "a" ) {
 | 
			
		||||
            return meridiem;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        throw new Error(`Invalid format for meridiem ${t}`);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public getHour(t: hourType): string | number {
 | 
			
		||||
        // Get current hour
 | 
			
		||||
        let h = this.ts.getHours();
 | 
			
		||||
 | 
			
		||||
        if ( t == "G" ) {
 | 
			
		||||
            return h;
 | 
			
		||||
        } else if ( t === "g" ) {
 | 
			
		||||
            if ( h > 12 )
 | 
			
		||||
                return h - 12;
 | 
			
		||||
            return h;
 | 
			
		||||
        } else if ( t === "H" ) {
 | 
			
		||||
            return String(h).padStart(2, "0");
 | 
			
		||||
        } else if ( t === "h" ) {
 | 
			
		||||
            if ( h > 12 )
 | 
			
		||||
                return String(h - 12).padStart(2, "0");
 | 
			
		||||
            return String(h).padStart(2, "0");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        throw new Error(`Invalid format for Hour ${t}`);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    // ############################## [ Date Formats ] ##############################
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in New Issue