dateFunc.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. function dateTime(date, fmt) {
  2. if (fmt === void 0) {
  3. fmt = 'yyyy年MM月dd日 hh:mm';
  4. }
  5. // 时间戳转换
  6. if (!date) return '';
  7. var d = new Date(date);
  8. var o = {
  9. "M+": d.getMonth() + 1,
  10. //月份
  11. "d+": d.getDate(),
  12. //日
  13. "h+": d.getHours(),
  14. //小时
  15. "m+": d.getMinutes(),
  16. //分
  17. "s+": d.getSeconds() //秒
  18. }; // 根据y的长度来截取年
  19. if (/(y+)/.test(fmt)) {
  20. fmt = fmt.replace(RegExp.$1, (d.getFullYear() + "").substr(4 - RegExp.$1.length));
  21. }
  22. for (var k in o) {
  23. if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
  24. }
  25. return fmt;
  26. }
  27. function dateYear() {
  28. // 获取当年的第一天
  29. var date = new Date();
  30. date.setDate(1);
  31. date.setMonth(0);
  32. return date.getTime();
  33. }
  34. function dateLast() {
  35. // 获取昨天
  36. var day = new Date();
  37. day.setTime(day.getTime() - 24 * 60 * 60 * 1000);
  38. return dateTime(day, 'yyyy/MM/dd');
  39. }
  40. function dateMatter(time, drag = 'normal') {
  41. // 时间转换
  42. var timeStr = '';
  43. var currentDay = dateTime(time, 'yyyy/MM/dd'); // 当前日期
  44. var lingDay = new Date(new Date().toLocaleDateString()).getTime(); // 获取当天0点
  45. var isTime = new Date(time) - lingDay;
  46. var diff = isTime < 0 ? '昨天' : '';
  47. var isDate = new Date(time) - dateYear();
  48. if (isDate < 0) {
  49. drag == 'normal' ? timeStr = dateTime(time) : timeStr = dateTime(time, 'yyyy年MM月dd日');
  50. } else {
  51. if (currentDay === dateLast()) {
  52. drag == 'normal' ? timeStr = diff + dateTime(time, 'hh:mm') : timeStr = diff;
  53. } else {
  54. if (isTime < 0) {
  55. drag == 'normal' ? timeStr = dateTime(time, 'MM月dd日 hh:mm') : timeStr = dateTime(time, 'MM月dd日');
  56. } else {
  57. timeStr = dateTime(time, 'hh:mm');
  58. }
  59. }
  60. }
  61. return timeStr;
  62. }