iview/src/components/date-picker/util.js

56 lines
1.4 KiB
JavaScript
Raw Normal View History

2016-12-12 20:34:28 +08:00
import dateUtil from '../../utils/date';
export const toDate = function(date) {
date = new Date(date);
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();
2016-12-12 20:34:28 +08:00
};
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);
2016-12-12 20:34:28 +08:00
}
temp.setMonth(newMonth);
2016-12-12 20:34:28 +08:00
return temp;
};
2016-12-12 20:34:28 +08:00
export const prevMonth = function(src) {
return siblingMonth(src, -1);
2016-12-12 20:34:28 +08:00
};
export const nextMonth = function(src) {
return siblingMonth(src, 1);
2016-12-27 17:16:11 +08:00
};
export const initTimeDate = function() {
2016-12-27 17:16:11 +08:00
const date = new Date();
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
return date;
};