JavaScript 中获取当前日期

JavaScript 中获取当前日期JavaScript 中获取当前日期

const date = new Date(); 

Date 对象包含一个 Number,表示从新纪元(即1970年1月1日)起经过的毫秒数。
您可以将日期字符串传递给 Date 构造函数以创建指定日期的对象:

const date = new Date('Jul 12 2011'); 

要获取当前年份,可以使用Date对象的 getFullYear() 实例方法 。getFullYear() 方法返回日期对应的年份:

const currentYear = date.getFullYear(); console.log(currentYear); //2020 

同样,有一些方法可以获取当月的当前日期和当前的月份:

const today = date.getDate(); const currentMonth = date.getMonth() + 1; 

getDate() 方法返回当月的当前日期(1-31)。
getMonth() 方法返回指定日期的月份。需要注意的一点是, getMonth()方法返回的是索引值(0-11),其中0表示一月,11表示十二月。因此,加1可以使月份的值标准化。
Date.now()
now() Date 对象的静态方法。它返回以毫秒为单位的值,该值表示自纪元以来经过的时间。您可以将now()方法返回的毫秒数传递给Date 构造函数以实例化新的 Date 对象:






const timeElapsed = Date.now(); const today = new Date(timeElapsed); 
today.toDateString(); // "Sun Jun 14 2020" 

toISOString()方法返回遵循ISO 8601扩展格式的日期:

today.toISOString(); // "2020-06-13T18:30:00.000Z" 

toUTCString()方法以UTC时区格式返回日期:

today.toUTCString(); // "Sat, 13 Jun 2020 18:30:00 GMT" 

toLocaleDateString()方法以对地区敏感的格式返回日期:

today.toLocaleDateString(); // "6/14/2020" 

我们可以在MDN文档中找到Date有关方法的完整参考。
自定义日期格式化工具
除了上一节中提到的格式外,我们开发应用程序可能具有不同的数据格式。它可以是yy年mm月dd日yyyy-dd-mm格式,或者类似的东西。
为了解决这个问题,最好创建一个可重用的日期格式化函数,以便可以在多个项目中使用它。
因此,在本节中,我们会创建一个函数,该函数将接收时间格式作为参数,返回对应格式的日期:








const today = new Date(); function formatDate(date, format) { 
    // } formatDate(today, 'mm/dd/yy'); 
format.replace('mm', date.getMonth() + 1); 

但这样会形成链式调用,而且会影响我们函数的灵活度:

format.replace('mm', date.getMonth() + 1) .replace('yy', date.getFullYear()) .replace('dd', date.getDate()); 

所以我们可以使用正则表达式代替方法来replace()
首先创建一个对象,该对象将代表子字符串的键值对及其各自的值:

const formatMap = { 
    mm: date.getMonth() + 1, dd: date.getDate(), yy: date.getFullYear().toString().slice(-2), yyyy: date.getFullYear() }; 

接下来,使用正则表达式匹配并替换字符串:

formattedDate = format.replace(/mm|dd|yy|yyy/gi, matched => map[matched]); 

完整的功能如下所示:

function formatDate(date, format) { 
    const map = { 
    mm: date.getMonth() + 1, dd: date.getDate(), yy: date.getFullYear().toString().slice(-2), yyyy: date.getFullYear() } return format.replace(/mm|dd|yy|yyy/gi, matched => map[matched]) } 

总结

希望通过这篇文章,能让你对JavaScript 中的Date对象有更好的了解。

其实你还可以使用其他第三方库(例如datesjmoment)来处理日期。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204528.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午8:06
下一篇 2026年3月19日 下午8:07


相关推荐

  • Java实现数组反转

    Java实现数组反转Java实现数组反转实现思路:(1)初始化数组(2)定义方法实现反转数组(3)定义方法遍历数组(4)调用方法//数组反转publicclassArrayReverse{publicstaticvoidmain(String[]args){int[]arr={68,27,95,88,171,996,51,210};//数组例子,自行设置reverse(arr);printArray(arr);}

    2022年4月29日
    49
  • java实现敏感词过滤「建议收藏」

    java实现敏感词过滤「建议收藏」项目中的需要,对用户的输入进行敏感词的过滤,使用的是DFT算法,敏感词可以从数据库进行读取和配置.把代码整理了一下,可以直接使用完整工程下载地址:https://download.csdn.net/download/a897180673/10278921一共三个类,1个测试类,1个从数据库加载敏感词类,一个是实现DFT算法的类,具体的算法可以去研究.首先是从数据库加…

    2022年5月29日
    33
  • 细谈微商分销系统开发对企业的发展是好还是坏「建议收藏」

    细谈微商分销系统开发对企业的发展是好还是坏「建议收藏」  微商分销系统开发,,微商二级分销系统,微商系统开发,微商软件。微商APP开发,微商分销模式,微商全返系统,微商返利系统,微商管理系统。  从各个层面和角度,全方位解决微商品牌企业,在渠道中的一切微商管理问题,让微商品牌和团队轻松应对市场。  一、微商分销系统的特点  1.当你成为产品的代理商之后,你可以选择多种发货模式,平台或推广者可以选择发货模式。  …

    2022年5月17日
    40
  • 测试负责人如何管理(如何成为优秀的团队负责人)

    前言:今天是2021年11月17日,我入职新公司工作的第20天,工作也确实比较忙,准确的来说在公司大家都忙,我基本上都是早上7点半起床,晚上12点到家,睡午觉的时间忙中偷闲更新下博客!作为测试负责人如何规范测试团队?一、我的提问二、你会发现存在的问题1、流程不规范2、缺乏沟通3、没有共享文档4、没有输出三、如何做好流程规范1、测试进度及计划面板2、技术评审3、提测规范4、测试用例评审四、如何做好流程规范1、测试进度及计划面板一、我的提问当你来到一个项目不规范的技术团队,你会怎么处理呢?二、你会发现存

    2022年4月10日
    52
  • Windows24h2重装系统找不到硬盘,重装系统找不到硬盘驱动

    Windows24h2重装系统找不到硬盘,重装系统找不到硬盘驱动

    2026年3月12日
    2
  • mapminmax 用法[通俗易懂]

    mapminmax 用法[通俗易懂]mapminmax是MATLAB实现归一化的工具包,默认:(1)将矩阵的每行分别进行归一化;(2)每行的最大值最小值作为每行归一化的xmin和xmax;(3)将数据归一化到[-1,1].若要将数据归一化到0到1之间,即y∈[0,1],使用b=mapminmax(a,0,1);若给与确定的最大值和最小值作为每行的xmin和xmax,使用:b= mapminmax(a,0,1);PS.xmin…

    2022年6月30日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号