(為清楚起見已更新!)
我需要通過一個相當不優雅的解決方案來實作一個 JS 倒數計時器,并且偶然發現了一個特定的挑戰(我不是開發人員,在這里我的深度不夠)。
在此頁面(https://jsbin.com/guxijofuca/edit?html,js,output)上,我想從 HTML 元素中提取日期,然后在倒計時插件中應用/使用它。但是,日期以以下格式存在:2022 年 4 月 12 日 14:12
該插件需要這種格式的代碼:
// SET DATE TO SPECIFIC DAY IN THE FUTURE
// MONTHS go from 0 to 11: January is 0, February is 1, and so on
var then = new Date(2022, 11, 25, 15, 30, 0, 0);
有人可以幫我將上述時間轉換為插件所需的格式嗎?
uj5u.com熱心網友回復:
您只需要將決議后的倒計時分配給一個新Date類
var countDownDate = Date.parse(document.getElementById("goaltime").innerHTML);
const then = new Date(countDownDate);
console.log(countDownDate);
console.log(then);
<div id="goaltime">Apr 28, 2022 15:03</div>
該類
Date實際上可以接收單個引數。有很多方法可以創建一個新的Date類物件。
一些有用的參考:W3Schools Date、MDN-Docs Date和W3Schools Date parse()
uj5u.com熱心網友回復:
你已經有一個Date物件了,當你可以立即設定為該值countDownDate時,為什么還要費心創建它呢?then
var then = Date.parse(document.getElementById("goaltime").innerHTML);
這是假設您在帖子中提到的內容是正確的,并且初始Date.parse操作不會根據元素的innerHTML內容回傳任何例外。#goaltimeDate
uj5u.com熱心網友回復:
您需要使用 Date.parse 決議字串,它回傳自 1970 年 1 月 1 日以來的毫秒數。然后用它創建一個 Date 物件。
const parsedDate = Date.parse(document.getElementById("goaltime").innerHTML);
const then = new Date(parsedDate);
如果您需要更改決議的日期組件,您可以像這樣分解它(添加或減去您需要的任何內容到最終新日期的每個組件):
const parsedDate = Date.parse(document.getElementById("goaltime").innerHTML);
const tempDate = new Date(parsedDate);
const then = new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate(), tempDate.getHours(), tempDate.getMinutes(), tempDate.getSeconds(), tempDate.getMilliseconds());
uj5u.com熱心網友回復:
您可以使用方法Date獲取年、月等。然后將這些傳遞給插件
//var dt = Date.parse(document.getElementById("goaltime").innerHTML);
const dt = new Date()
const year = dt.getFullYear();
const month = dt.getMonth();
const date = dt.getDate();
const hours = dt.getHours();
const mins = dt.getMinutes();
console.log({ year, month, date, hours, mins });
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/466180.html
標籤:javascript
