Skip to content

前端 JS 相关

1、日期时间格式化

JS
function formatDate(objDate, fmt) {
    var o = {
        "M+": objDate.getMonth() + 1, //月份
        "d+": objDate.getDate(), //日
        "h+": objDate.getHours() % 12 == 0 ? 12 : objDate.getHours() % 12, //小时
        "H+": objDate.getHours(), //小时
        "m+": objDate.getMinutes(), //分
        "s+": objDate.getSeconds(), //秒
        "q+": Math.floor((objDate.getMonth() + 3) / 3), //季度
        "S": objDate.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt))
        fmt = fmt.replace(RegExp.$1, (objDate.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt))
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

2、格式化距现在的已过时间

JS
function formatPassTime(startTime) {
  var currentTime = Date.parse(new Date()),
    time = currentTime - startTime,
    day = parseInt(time / (1000 * 60 * 60 * 24)),
    hour = parseInt(time / (1000 * 60 * 60)),
    min = parseInt(time / (1000 * 60)),
    month = parseInt(day / 30),
    year = parseInt(month / 12);

  if (year) return year + "年前"
  if (month) return month + "个月前"
  if (day) return day + "天前"
  if (hour) return hour + "小时前"
  if (min) return min + "分钟前"
  else return '刚刚'
}

3、格式化现在距结束时间的剩余时间

JS
function formatRemainTime(endTime) {
  var startDate = new Date(); //开始时间
  var endDate = new Date(endTime); //结束时间
  var t = endDate.getTime() - startDate.getTime(); //时间差
  var d = 0,
    h = 0,
    m = 0,
    s = 0;

  if (t >= 0) {
    d = Math.floor(t / 1000 / 3600 / 24);
    h = Math.floor(t / 1000 / 60 / 60 % 24);
    m = Math.floor(t / 1000 / 60 % 60);
    s = Math.floor(t / 1000 % 60);
  }

  return d + "天 " + h + "小时 " + m + "分钟 " + s + "秒";
}

4、禁用复制

全局禁用复制

JS
document.addEventListener('copy',(e)=>{
    e.preventDefault(); // 禁用复制
    // console.log(e.target);复制的是哪个标签段落
    // e.clipboardData.setData('text/plain','不准复制');
})

5、上传文件

HTML
<input type="file" id="file" />
<progress id="progress" value="0" max="100"></progress>
JS
// 获取input file 的dom对象
const inputFile = document.querySelector("#file");

// 监听change事件
inputFile.addEventListener('change', function() {
    var file = inputFile.files[0];
    // 使用formData 装载file
    const formData = new FormData();
    formData.append('file', file);
    // 上传文件
    upload(formData);
});

const upload = (formData) => {
    $.ajax({
        type: 'POST',
        url: 'http://127.0.0.1:5000/api/upload',
        data: formData,
        dataType: 'json',
        // 不进行数据处理和内容处理
        contentType: false,
        processData: false,
        xhr: function() {
          const xhr=$.ajaxSettings.xhr();
          if(xhr.upload) {
            xhr.upload.addEventListener('progress',e => {
              const { loaded, total } = e;
              var progress = Math.round((loaded*100)/total);
              console.log(progress) //获取进度条
              document.querySelector('#progress').setAttribute('value',progress);
            },false);
            return xhr;
          }
        },
        success: function (data) {
          console.log('上传成功');
        },
        error: function (err) {
            console.error('上传失败');
            console.error(err);
        }
    });
}
你觉得这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度