【发布时间】:2021-09-25 17:19:59
【问题描述】:
我正在尝试根据 mysql 时间戳显示还剩多少时间。由于某种原因,输出为 -1 天 23 小时 59 分钟 59 秒。
<script type="text/javascript">
function update(datetime = "2021-07-15 20:24:42") {
timeleft = new Date(datetime);
now = new Date();
secs = (timeleft - now) / 1000;
days = Math.floor(secs / (3600 * 24));
hours = Math.floor((secs - (days * (3600 * 24)))/3600);
minutes = Math.floor((secs - (days * (3600 * 24)) - (hours * 3600)) / 60);
seconds = Math.floor(secs - (days * (3600 * 24)) - (hours * 3600) - (minutes * 60));
if (seconds < 0) {
days = 0;
hours = 0;
minutes = 0;
seconds = 0;
}
return days+' days, '+ hours+' hours, '+minutes+' minutes, '+seconds+' seconds';
}
// time is pulled from database, but plugged in manually
member = Date("06-08-21 16:06:37");
alert("Left: "+update(member));
</script>
任何信息将不胜感激
【问题讨论】:
-
您的数据库中的日期格式是什么?是 DD-MM-YY 还是 YYYY-MM-DD?
member建议是第一个,datetime建议是后者。这两种格式都不适合javascriptDate(),您需要先将其转换为正确的格式。 -
可以像
new Date()一样使用Date的Constructor函数
标签: javascript mysql timestamp