56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
/**
|
|
* @typedef {number}
|
|
*/
|
|
var initialInputOlder = 0; // miliseconds Unix TimeStamp
|
|
/**
|
|
* @typedef {number}
|
|
*/
|
|
var initialInputNewer = 0; // miliseconds Unix TimeStamp
|
|
|
|
|
|
/**
|
|
* @typedef {HTMLInputElement}
|
|
*/
|
|
var olderThanInputElement;
|
|
/**
|
|
* @typedef {HTMLInputElement}
|
|
*/
|
|
var newerThanInputElement;
|
|
|
|
document.addEventListener(`DOMContentLoaded`, initializePage)
|
|
|
|
function initializePage() {
|
|
|
|
// Update the page's time filter
|
|
initialInputOlder = Number(document.getElementById(`inp-older`).textContent.trim())
|
|
initialInputNewer = Number(document.getElementById(`inp-newer`).textContent.trim())
|
|
|
|
// Bind the date elements
|
|
olderThanInputElement = document.getElementById(`olderThan`);
|
|
newerThanInputElement = document.getElementById(`newerThan`);
|
|
|
|
olderThanInputElement.value = convertTimestampToDateTimeLocal(initialInputOlder);
|
|
newerThanInputElement.value = convertTimestampToDateTimeLocal(initialInputNewer);
|
|
|
|
}
|
|
|
|
// Handle one of the date elements having their value changed.
|
|
function applyDateInterval() {
|
|
const olderTimeStamp = new Date(olderThanInputElement.value).getTime()
|
|
const newerTimeStamp = new Date(newerThanInputElement.value).getTime()
|
|
|
|
window.location.href = `/?older=${olderTimeStamp}&newer=${newerTimeStamp}`;
|
|
}
|
|
|
|
/**
|
|
* Converts a Unix timestamp to a standard datetime string
|
|
* @param {number} timestamp - The Unix timestamp in milliseconds.
|
|
* @returns {string} - A normal string with Y-m-d H:i:s format
|
|
*/
|
|
function convertTimestampToDateTimeLocal(timestamp) {
|
|
const date = new Date(timestamp);
|
|
const offset = date.getTimezoneOffset() * 60000; // offset in milliseconds
|
|
const localDate = new Date(date.getTime() - offset);
|
|
return localDate.toISOString().slice(0, 19);
|
|
}
|