Epoch 类功能

问题描述 投票:0回答:1
javascript epoch
1个回答
0
投票

您的 JavaScript 代码中有一些地方需要纠正和改进,以实现您正在寻找的功能。

  1. getElementsByClassName
    中的拼写错误:方法名称应该是
    getElementsByClassName
    (复数)而不是
    getElementByClassName
    (单数)。

  2. 解析时间戳:应使用

    parseInt
    元素的
    innerText
    调用
    epoch
    函数,以将纪元时间戳字符串转换为数字。

  3. 日期格式

    toDateString
    方法不接受任何参数。要设置日期格式,您应该使用
    toLocaleDateString
    ,它允许指定格式选项。

这是代码的更正和改进版本:

let epochs = document.getElementsByClassName("epoch");
for (var i = 0; i < epochs.length; i++) {
    let timestamp = parseInt(epochs[i].innerText, 10);
    let date = new Date(timestamp * 1000); // Convert to milliseconds
    let formattedDate = date.toLocaleDateString(undefined, { 
        weekday: 'long', 
        year: 'numeric', 
        month: 'short', 
        day: 'numeric', 
        hour: '2-digit', 
        minute: '2-digit', 
        second: '2-digit', 
        timeZoneName: 'short' 
    });
    epochs[i].innerText = formattedDate;
}

说明:

  • getElementsByClassName("epoch")
    返回找到的元素的实时 HTMLCollection,其类名为“epoch”。
  • parseInt(epochs[i].innerText, 10)
    将每个元素的内部文本解析为以 10 为基数的整数(纪元时间戳)。
  • new Date(timestamp * 1000)
    根据纪元时间戳创建一个新的 Date 对象。 Epoch 时间以秒为单位,但 JavaScript 的 Date 对象构造函数需要毫秒,因此乘以 1000。
  • toLocaleDateString(undefined, {...})
    根据用户的本地设置格式化日期(
    undefined
    使其使用用户的区域设置)。选项对象指定如何表示日期的各个部分。
  • 最后,
    epochs[i].innerText = formattedDate
    用格式化的日期字符串替换每个范围的内部文本。

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.