1.将一组表单子元素转化为对象
const formToObject = form => Array.from(new FormData(form)).reduce( (action, [key, value]) => ({ ...action, [key]: value }), {} ); // 事例 formToObject(document.querySelector('#form')); // { age:'12',email: 'flower@email.com', name: 'Zhangsan' }
2.获得给定毫秒数的可读格式
const formatDuration = ms => { if (ms < 0) ms = -ms; const time = { day: Math.floor(ms / 86400000), hour: Math.floor(ms / 3600000) % 24, minute: Math.floor(ms / 60000) % 60, second: Math.floor(ms / 1000) % 60, millisecond: Math.floor(ms) % 1000 }; return Object.entries(time) .filter(val => val[1] !== 0) .map(([key, val]) => `${val} ${key}${val !== 1 ? 's' : ''}`) .join(', '); }; // 事例 formatDuration(1001); // '1 second, 1 millisecond' formatDuration(34325055574); // '397 days, 6 hours, 44 minutes, 15 seconds, 574 milliseconds'
3.两个日期之间的差异 (以天为单位)
const getDaysDiffBetweenDates = (dateInitial, dateFinal) => (dateFinal - dateInitial) / (1000 * 3600 * 24); // 事例 getDaysDiffBetweenDates(new Date('2018-10-14'), new Date('2018-10-23')); // 9