feat: improve date algorithm

This commit is contained in:
TaurusXin 2022-01-20 22:40:50 +00:00
parent adde0023d6
commit f878564b4c

View File

@ -46,13 +46,64 @@ $postCount := len $posts }}
let start = new Date({{ .Site.Params.widgets.status.start }})
let startFormated = start.format({{ .Site.Params.widgets.status.format }})
document.querySelector('#start').innerHTML = startFormated
start.setMonth(start.getMonth() - 1)
let now = new Date()
let diff = new Date(now.getTime() - start.getTime());
now.setMonth(now.getMonth() -1)
let years = (diff.getUTCFullYear() - 1970)
let months = diff.getUTCMonth()
let days = diff.getUTCDate() - 1
document.querySelector('#time').innerHTML = years + ' 年 ' + months + ' 月 ' + days + ' 天'
let diff = Date.UTC(now.getFullYear(), now.getMonth(), now.getDay(), 0, 0, 0)
- Date.UTC(start.getFullYear(), start.getMonth(), start.getDay(), 0, 0, 0)
function checkleapyear(datea)
{
if(datea.getYear() % 4 == 0)
{
if(datea.getYear() % 10 != 0)
{
return true
}
else
{
if(datea.getYear() % 400 == 0)
return true
else
return false
}
}
return false;
}
function DaysInMonth(Y, M) {
with (new Date(Y, M, 1, 12)) {
setDate(-2)
return getDate()
}
}
function datediff(date1, date2)
{
var y1 = date1.getFullYear(), m1 = date1.getMonth(), d1 = date1.getDate(),
y2 = date2.getFullYear(), m2 = date2.getMonth(), d2 = date2.getDate()
if (d1 < d2)
{
m1--
d1 += DaysInMonth(y2, m2)
}
if (m1 < m2)
{
y1--
m1 += 12
}
return [y1 - y2, m1 - m2, d1 - d2]
}
var dife = datediff(now, start)
if(checkleapyear(start)==true)
{
document.querySelector('#time').innerHTML = dife[0] + " 年 "+dife[1] + ' 月 ' + dife[2] + ' 天'
}else{
document.querySelector('#time').innerHTML = dife[0] + " 年 "+dife[1] + ' 月 ' + dife[2] + ' 天'
}
</script>
</section>