mirror of
https://github.com/hex248/ob248.com.git
synced 2026-02-08 02:33:02 +00:00
move general TimeSince
This commit is contained in:
@@ -1,30 +0,0 @@
|
||||
<span id="time-alive"></span>
|
||||
|
||||
<script>
|
||||
const birthDate = new Date("2004-11-04");
|
||||
const birthDateMS = Math.floor(birthDate.getTime());
|
||||
const currentTimeMS = Math.floor(new Date().getTime());
|
||||
|
||||
let interval = 1; // ms
|
||||
let msElapsed = 0;
|
||||
|
||||
function updateTimeAlive() {
|
||||
let years = Math.floor(
|
||||
(currentTimeMS - birthDateMS + msElapsed) /
|
||||
(60 * 60 * 24 * 365 * 1000)
|
||||
);
|
||||
let milliseconds = currentTimeMS - birthDateMS + msElapsed;
|
||||
|
||||
const element = document.getElementById("time-alive");
|
||||
if (element) {
|
||||
element.innerText = `${years}y or ${milliseconds}ms`;
|
||||
}
|
||||
}
|
||||
|
||||
updateTimeAlive();
|
||||
|
||||
setInterval(() => {
|
||||
msElapsed += interval;
|
||||
updateTimeAlive();
|
||||
}, interval);
|
||||
</script>
|
||||
32
src/components/TimeSince.astro
Normal file
32
src/components/TimeSince.astro
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
const { date } = Astro.props;
|
||||
const uniqueId = `time-since-${Math.random().toString(36).substring(2, 9)}`;
|
||||
---
|
||||
|
||||
<span id={uniqueId} data-date={date.getTime()}></span>
|
||||
|
||||
<script define:vars={{ uniqueId, dateMS: date.getTime() }}>
|
||||
const currentTimeMS = Math.floor(new Date().getTime());
|
||||
|
||||
let interval = 1; // ms
|
||||
let msElapsed = 0;
|
||||
|
||||
function updateTimeAlive() {
|
||||
let years = Math.floor(
|
||||
(currentTimeMS - dateMS + msElapsed) / (60 * 60 * 24 * 365 * 1000)
|
||||
);
|
||||
let milliseconds = currentTimeMS - dateMS + msElapsed;
|
||||
|
||||
const element = document.getElementById(uniqueId);
|
||||
if (element) {
|
||||
element.innerText = `${years}y or ${milliseconds}ms`;
|
||||
}
|
||||
}
|
||||
|
||||
updateTimeAlive();
|
||||
|
||||
setInterval(() => {
|
||||
msElapsed += interval;
|
||||
updateTimeAlive();
|
||||
}, interval);
|
||||
</script>
|
||||
@@ -1,9 +1,10 @@
|
||||
---
|
||||
import Layout from "../layouts/Layout.astro";
|
||||
import TimeAlive from "../components/TimeAlive.astro";
|
||||
import TimeSince from "../components/TimeSince.astro";
|
||||
---
|
||||
|
||||
<Layout currentPage="about">
|
||||
<h1 class="text-md">about page</h1>
|
||||
AGE: <TimeAlive client:react />
|
||||
<div class="text-md">
|
||||
<p>AGE: <TimeSince date={new Date("2004-11-04")} client:react /></p>
|
||||
</div>
|
||||
</Layout>
|
||||
|
||||
Reference in New Issue
Block a user