import dateUtil from '../../utils/date'; export const toDate = function(date) { let _date = new Date(date); // IE patch start (#1422) if (isNaN(_date.getTime()) && typeof date === 'string'){ _date = date.split('-').map(Number); _date[1] += 1; _date = new Date(..._date); } // IE patch end if (isNaN(_date.getTime())) return null; return _date; }; export const formatDate = function(date, format) { date = toDate(date); if (!date) return ''; return dateUtil.format(date, format || 'yyyy-MM-dd'); }; export const parseDate = function(string, format) { return dateUtil.parse(string, format || 'yyyy-MM-dd'); }; export const getDayCountOfMonth = function(year, month) { return new Date(year, month + 1, 0).getDate(); }; export const getFirstDayOfMonth = function(date) { const temp = new Date(date.getTime()); temp.setDate(1); return temp.getDay(); }; export const siblingMonth = function(src, diff) { const temp = new Date(src); // lets copy it so we don't change the original const newMonth = temp.getMonth() + diff; const newMonthDayCount = getDayCountOfMonth(temp.getFullYear(), newMonth); if (newMonthDayCount < temp.getDate()) { temp.setDate(newMonthDayCount); } temp.setMonth(newMonth); return temp; }; export const prevMonth = function(src) { return siblingMonth(src, -1); }; export const nextMonth = function(src) { return siblingMonth(src, 1); }; export const initTimeDate = function() { const date = new Date(); date.setHours(0); date.setMinutes(0); date.setSeconds(0); return date; };