请看下面的详细讲解。
JS中时间格式的转换方法
日期和时间在我们日常生活中随处可见,在编程中也是一个非常常用的数据类型。JS中有多种表示时间的方式,在不同场景下可能需要使用不同格式的时间。在本篇攻略中,我们将介绍JS中常用的几种时间格式以及相互转换的方法。
JavaScript内置的时间对象
在JS中,有一个内置的时间对象叫做Date对象,它提供了一系列操作日期和时间的方法。创建一个Date对象有多种方式,例如:
// 创建一个Date对象,设置为当前时间
var now = new Date();
// 创建一个Date对象,设置为指定的时间
var specificTime = new Date('2021-08-01 12:00:00');
// 创建一个Date对象,设置为指定的时间戳(毫秒数)
var specificTimestamp = new Date(1627819200000); // 时间戳表示的是 2021-08-02 00:00:00
以上示例都创建了一个Date对象,不同的是创建时设置的时间不同。我们可以使用Date对象提供的方法,对这些时间进行格式转换。
转换为时间戳
时间戳是指从1970年1月1日00:00:00 UTC(协调世界时)开始到指定时间的秒数。在JS中,我们可以使用Date对象的getTime方法获取指定时间的时间戳(毫秒数),例如:
// 创建一个Date对象,设置为指定的时间
var specificTime = new Date('2021-08-01 12:00:00');
// 获取指定时间的时间戳(毫秒数)
var timestamp = specificTime.getTime(); // 返回 1627802400000
我们可以将上面的时间戳传给后端API接口进行处理。
转换为字符串
在某些场景下,需要将时间转换为字符串进行展示或传递。在JS中,Date对象提供了多种用于将日期格式化为字符串的方法,例如toISOString、toGMTString、toLocaleDateString等方法。这里做一个简单的示例,将时间转换为标准的日期字符串格式(yyyy-MM-dd HH:mm:ss),代码如下:
// 创建一个Date对象,设置为指定的时间
var specificTime = new Date('2021-08-01 12:00:00');
// 获取指定时间的字符串表示,格式为 yyyy-MM-dd HH:mm:ss
var formattedTime = specificTime.getFullYear() + '-' +
(specificTime.getMonth() + 1).toString().padStart(2, '0') + '-' +
specificTime.getDate().toString().padStart(2, '0') + ' ' +
specificTime.getHours().toString().padStart(2, '0') + ':' +
specificTime.getMinutes().toString().padStart(2, '0') + ':' +
specificTime.getSeconds().toString().padStart(2, '0');
在上述代码中,我们使用了Date对象提供的getFullYear、getMonth、getDate、getHours、getMinutes、getSeconds等方法获取日期的年、月、日、时、分、秒,并使用string的padStart方法对月、日、时、分、秒进行补零操作,确保输出的日期格式为两位数。最终得到的formattedTime变量的值为"2021-08-01 12:00:00"。
示例说明
假设我们需要在网页中展示当前时间,并且需要将时间显示为北京时间。具体的实现代码如下:
// 创建一个Date对象,设置为当前时间
var now = new Date();
// 将时区调整为UTC+8,即北京时间
now.setHours(now.getHours() + 8);
// 获取当前时间的字符串表示,格式为 yyyy-MM-dd HH:mm:ss
var formattedTime = now.getFullYear() + '-' +
(now.getMonth() + 1).toString().padStart(2, '0') + '-' +
now.getDate().toString().padStart(2, '0') + ' ' +
now.getHours().toString().padStart(2, '0') + ':' +
now.getMinutes().toString().padStart(2, '0') + ':' +
now.getSeconds().toString().padStart(2, '0');
// 将格式化后的时间展示在网页上
document.getElementById('time').innerText = formattedTime;
在上述代码中,我们使用setHours方法将时区调整为UTC+8,即北京时间。然后使用前面讲到的字符串格式化方法将时间格式化为yyyy-MM-dd HH:mm:ss的字符串,并将其展示在网页上。
另外一个示例是将时间转换为时间戳,并作为参数传递给后端API接口进行处理。具体的实现代码如下:
// 创建一个Date对象,设置为指定的时间
var specificTime = new Date('2021-08-01 12:00:00');
// 获取指定时间的时间戳(毫秒数)
var timestamp = specificTime.getTime();
// 向后端API接口发送请求,传递时间戳参数
fetch('/api/data?timestamp=' + timestamp)
.then(response => {
// 处理返回结果
console.log(response);
})
.catch(error => {
// 处理请求错误
console.error(error);
});
在上述代码中,我们使用Date对象的getTime方法获取指定时间的时间戳,并将其作为参数传递给后端API接口。注意,在实际开发中,我们应该使用encodeURIComponent方法对参数进行编码,以避免一些特殊字符可能会引起的问题。
总结
本篇攻略介绍了JS中常见的时间格式以及相互转换的方法,包括转换为时间戳和转换为字符串。通过以上示例,相信大家对JS里面时间对象的使用方法有了更清晰的认识,更加熟练的掌握时间对象的使用方法,对我们的工作会更加得心应手。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js中各种时间格式的转换方法举例 - Python技术站