JS获取当前时间(年月日时分秒 2023-11-02 06:05:05)

new Date()中获取时间戳的四种方法_donghua201的博客-CSDN博客

方法一   new Date() + ISO格式的字符串处理

toISOString() 方法可以使用ISO标准将 Date 对象转换为字符串,格式为:YYYY-MM-DDTHH:mm:ss.sssZ。但是这个方法会丢失时区,中国在东八区,所以使用前要加上8小时的时间差,才得到准确时间。

// 获取当前北京时间的时间戳(单位为毫秒)
var stamp= new Date().getTime() + 8 * 60 * 60 * 1000;

// 格式化北京时间为"YYYY-MM-DD HH:mm:ss"
var beijingTime = new Date(stamp).toISOString().replace(/T/, ' ').replace(/\..+/, '').substring(0, 19);
// Fri Nov 10 2023 17:47:40 GMT+0800 (中国标准时间)
// 2023-11-10T09:49:02.550Z
// 2023-11-10 09:49:02

console.log(beijingTime); 
// 输出"2023-11-02 06:05:05"
  1. new Date():创建一个Date对象,表示当前系统时间。
  2. getTime():返回Date对象的时间戳(单位为毫秒)。
  3. 8 * 60 * 60 * 1000:北京位于东八区,所以时间上要加上8个小时对应的毫秒数。
  4. new Date(beijingTimestamp):创建一个Date对象,表示当前北京时间。

至此,得到当前北京时间的时间戳,接下来把时间戳(例如1699609423364)转换成"YYYY-MM-DD HH:mm:ss"的格式。

  1. toISOString():把Date对象转换为ISO格式的字符串,例如"2023-11-02T06:05:05.000Z"。
  2. replace(/T/, ' '):把"T"替换为" ",即把ISO时间格式转换为可读性更高的格式。
  3. replace(/\..+/, ''):把小数点和小数部分去掉,即去掉秒后面的小数点和数字。
  4. substring(0, 19):截取字符串的前19个字符,即去掉秒后面的小数点和数字。

方法二  new Date() + 单独取出时间拼接

1、使用三元运算符两位数补零

// 创建一个 Date 对象
var today = new Date();

// 获取年、月、日、时、分、秒
var year = today.getFullYear();
var month = today.getMonth() + 1; // 月份是从 0 开始计数的,需要加1
var day = today.getDate();
var hours = today.getHours();
var minutes = today.getMinutes();
var seconds = today.getSeconds();

// 格式化输出
var formattedTime = year + "-" + 
                   (month < 10 ? "0" : "") + month + "-" + 
                   (day < 10 ? "0" : "") + day + " " + 
                   (hours < 10 ? "0" : "") + hours + ":" + 
                   (minutes < 10 ? "0" : "") + minutes + ":" + 
                   (seconds < 10 ? "0" : "") + seconds;

console.log(formattedTime);
// "2023-11-08 19:05:05"

2、使用padStart两位数补零

  • padStart() ES2017新加的字符串补全长度方法
  • padStart() 方法有两个参数:

        1、padLength 是填充后的结果字符串的长度。如果 padLength 小于字符串的长度,则字符串按原样返回,没有填充

        2、padString 是一个可选参数,用于填充字符串,默认值为“ ”。如果 padString 大于 padLength,padString 将被截断,只填充最左边的部分。


padStart()用于头部补全,padEnd()用于尾部补全。

// 创建一个新的Date对象,表示当前时间
var currentDate = new Date();

// 获取年、月、日、小时、分钟和秒
var year = currentDate.getFullYear();
var month = (currentDate.getMonth() + 1).toString().padStart(2, '0'); // 月份从0开始,所以要加1,并补零
var day = currentDate.getDate().toString().padStart(2, '0'); // 补零
var hours = currentDate.getHours().toString().padStart(2, '0'); // 补零
var minutes = currentDate.getMinutes().toString().padStart(2, '0'); // 补零
var seconds = currentDate.getSeconds().toString().padStart(2, '0'); // 补零

// 拼接日期和时间字符串
var formattedDateTime = year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;

console.log(formattedDateTime); // 输出:2023-11-02 05:51:15
  1. 创建一个新的Date对象,表示当前时间。
  2. 使用get...系列方法获取年、月、日、小时、分钟和秒。
  3. 使用三元运算符或者padStart函数对这些数字进行补零操作,确保它们始终是两位数。
  4. 使用字符串拼接将这些数值组合成所需的日期和时间格式。
  • 13
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值