mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-12 12:33:07 +00:00
59 lines
1.8 KiB
TypeScript
59 lines
1.8 KiB
TypeScript
import { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';
|
|
|
|
import { isObject } from 'lodash';
|
|
import * as moment from 'moment';
|
|
|
|
/**
|
|
* Returns true if the passed value is a NgbDateStruct.
|
|
*
|
|
* @param value
|
|
* The object to check
|
|
* @return boolean
|
|
* true if the passed value is a NgbDateStruct, false otherwise
|
|
*/
|
|
export function isNgbDateStruct(value: object): boolean {
|
|
return isObject(value) && value.hasOwnProperty('day')
|
|
&& value.hasOwnProperty('month') && value.hasOwnProperty('year');
|
|
}
|
|
|
|
/**
|
|
* Returns a date in simplified extended ISO format (YYYY-MM-DDTHH:mm:ssZ).
|
|
* The timezone is always zero UTC offset, as denoted by the suffix "Z"
|
|
*
|
|
* @param date
|
|
* The date to format
|
|
* @return string
|
|
* the formatted date
|
|
*/
|
|
export function dateToISOFormat(date: Date | NgbDateStruct): string {
|
|
const dateObj: Date = (date instanceof Date) ? date : ngbDateStructToDate(date);
|
|
|
|
let year = dateObj.getFullYear().toString();
|
|
let month = (dateObj.getMonth() + 1).toString();
|
|
let day = dateObj.getDate().toString();
|
|
let hour = dateObj.getHours().toString();
|
|
let min = dateObj.getMinutes().toString();
|
|
let sec = dateObj.getSeconds().toString();
|
|
|
|
year = (year.length === 1) ? '0' + year : year;
|
|
month = (month.length === 1) ? '0' + month : month;
|
|
day = (day.length === 1) ? '0' + day : day;
|
|
hour = (hour.length === 1) ? '0' + hour : hour;
|
|
min = (min.length === 1) ? '0' + min : min;
|
|
sec = (sec.length === 1) ? '0' + sec : sec;
|
|
const dateStr = `${year}${month}${day}${hour}${min}${sec}`;
|
|
return moment.utc(dateStr, 'YYYYMMDDhhmmss').format();
|
|
}
|
|
|
|
/**
|
|
* Returns a Date object started from a NgbDateStruct object
|
|
*
|
|
* @param date
|
|
* The NgbDateStruct to convert
|
|
* @return Date
|
|
* the Date object
|
|
*/
|
|
export function ngbDateStructToDate(date: NgbDateStruct): Date {
|
|
return new Date(date.year, (date.month - 1), date.day);
|
|
}
|