使用Pre-1000 A.D.日期在JavaScript中的提示

如果有任何人在1000年前特别是公元前1 – 100年的时间内准确地建立日期,那么我很好奇.

例如,如果我想建立一个开始的第一个千年的日期,我不能只是做…

new Date(Date.UTC(1,1,0));

因为它试图是“聪明”,并假设1是1901,这给了我…

Sun Dec 31 1900 18:00:00 GMT-0600 (CST)

99年同样的事情…

new Date(Date.UTC(99,0));

变成了

Thu Dec 31 1998 18:00:00 GMT-0600 (CST)

思考?

解决方法

这是我想出的基本解决方案.如果一个日期是在1000年之前,我只是在构建日期时添加一个1000,然后再使用setUTCFullYear().
if (year >= 0 && year < 1000) { 
  var d = new Date(Date.UTC(year + 1000,mon,day,hour,min,sec,0));
  d.setUTCFullYear(d.getFullYear() - 1000); 
  return d; 
}

1000可能是过度的,因为我只是在前100个日期的问题…但是,无论如何.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...