侧边栏壁纸

JavaScript代码中常用的时间对象

2024年05月28日 382阅读 1评论 1点赞

创建时间对象

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

// 创建一个特定日期和时间的日期对象,参数依次为年、月(0-11)、日、时、分、秒、毫秒
var specificDate = new Date(2024, 4, 28, 8, 50, 0, 0);

获取年份

var currentDate = new Date();
var year = currentDate.getFullYear();
console.log(year); // 输出当前年份的四位数字形式,例如:2024

获取月份

var currentDate = new Date();
var month = currentDate.getMonth() + 1; // 获取实际的月份数字
console.log(month); // 输出当前月份的数字,例如:5

获取日期

var currentDate = new Date();
var date = currentDate.getDate();
console.log(date); // 输出当前日期的数字,例如:28

获取星期

var currentDate = new Date();
var dayOfWeek = currentDate.getDay();

// 创建一个数组来映射数字到星期名字
var daysOfWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var dayName = daysOfWeek[dayOfWeek];

console.log(dayName); // 输出当前日期对应的星期几,例如:Friday

获取小时

var currentDate = new Date();
var hours = currentDate.getHours();
console.log(hours); // 输出当前时间的小时数,例如:14

获取秒数

var currentDate = new Date();
var seconds = currentDate.getSeconds();
console.log(seconds); // 输出当前时间的秒数,例如:42

获取当前时间戳

var currentDate = new Date();
var timestamp = currentDate.getTime();
console.log(timestamp); // 输出当前时间的时间戳,例如:1622195912345

转换当前时间戳

var currentDate = new Date(); // 获取当前时间
var timestamp = currentDate.getTime(); // 转换为时间戳
console.log(timestamp); // 输出当前时间的时间戳

指定日期转时间戳

// 指定日期,月份从 0 开始计数,所以 4 代表五月
var specifiedDate = new Date(2024, 4, 28); 

// 将指定日期转换为时间戳
var timestamp = specifiedDate.getTime(); 

console.log(timestamp); // 输出指定日期的时间戳

时间戳转日期

var timestamp = 1622195912345; // 假设的时间戳

var date = new Date();
date.setTime(timestamp);

var year = date.getFullYear();
var month = date.getMonth() + 1; // 月份从 0 开始计数,需要加 1
var day = date.getDate();

console.log(year + '-' + month + '-' + day); // 输出日期(示例:2024-05-28)

计算两个世界的间隔

var startDate = new Date('2024-05-01');
var endDate = new Date('2024-05-10');

var startTimestamp = startDate.getTime();
var endTimestamp = endDate.getTime();

var millisecondsPerDay = 24 * 60 * 60 * 1000; // 一天的毫秒数
var daysInterval = Math.round((endTimestamp - startTimestamp) / millisecondsPerDay);

console.log(daysInterval); // 输出日期间的天数间隔

判断时间是否正确

function isValidDate(dateString) {
    // 使用正则表达式检查日期格式
    var regex = /^\d{4}-\d{2}-\d{2}$/;
    if (!regex.test(dateString)) {
        return false;
    }

    // 将日期字符串转换为 Date 对象
    var date = new Date(dateString);
    var year = date.getFullYear();
    var month = date.getMonth() + 1; // 月份从 0 开始计数
    var day = date.getDate();

    // 检查月份范围
    if (month < 1 || month > 12) {
        return false;
    }

    // 检查日期范围
    var daysInMonth = new Date(year, month, 0).getDate();
    if (day < 1 || day > daysInMonth) {
        return false;
    }

    return true;
}

// 示例用法
var dateString = '2024-02-30'; // 这是一个不正确的日期
console.log(isValidDate(dateString)); // 输出 false

确定日期再哪一年的第几天

function dayOfYear(dateString) {
    var date = new Date(dateString);
    var startOfYear = new Date(date.getFullYear(), 0, 0);
    var diff = date - startOfYear;
    var oneDay = 1000 * 60 * 60 * 24;
    var day = Math.floor(diff / oneDay);

    return day;
}

// 示例用法
var dateString = '2024-05-28'; // 要检查的日期字符串
var day = dayOfYear(dateString);
console.log(day); // 输出日期在 2024 年的第几天

格式化时间

function formatTime(date) {
    var hours = date.getHours().toString().padStart(2, '0');
    var minutes = date.getMinutes().toString().padStart(2, '0');
    var seconds = date.getSeconds().toString().padStart(2, '0');

    return hours + ':' + minutes + ':' + seconds;
}

// 示例用法
var now = new Date(); // 获取当前时间
var formattedTime = formatTime(now);
console.log(formattedTime); // 输出格式化后的时间

1

—— 评论区 ——

昵称
邮箱
网址
取消
  1. 头像
    回复

    感谢分享,我最近正在找写一个JavaScript计时器

人生倒计时
舔狗日记