我目前正在研究Jvascript日期时间部分,因为在将小时和分钟转换为秒(如PHP的strtotime)时出现NaN错误,所以我想知道如何像在PHP的strtotime中转换分钟和秒。
var d = new Date();
var total = d.getHours() + ":" + d.getMinutes();
var ts = Date.parse(total);
document.write(ts);
在输出中出现错误NaN
答案 0 :(得分:3)
这是一个愚蠢的问题,但这是该小时数和分钟数的秒数:
var d = new Date();
var total = (d.getHours() * 60 * 60) + (d.getMinutes() * 60);
document.write(total);
答案 1 :(得分:1)
首先,Date.parse()
采用特定格式的字符串(例如Jul 18, 2018
)。其次,它将不将日期转换为秒,但是将返回自 1970年1月1日格林尼治标准时间起的毫秒数。
如果需要将hh:mm转换为秒,正确的方法是将getHours()
的值乘以3600,再将getMinutes()
的值乘以60,然后将这两个值相加。
var d = new Date();
var timeinsecs = d.getHours() * 3600 + d.getMinutes() * 60;
document.write(timeinsecs);
如果您需要获取从格林尼治标准时间1970年1月1日00:00:00到当前时间的秒数,则需要解析当前日期,然后除以1000:
var d = new Date();
document.write(Date.parse(d) / 1000);
答案 2 :(得分:0)
只需获取小时和分钟,然后将它们相加即可乘以小时* 3600和分钟* 60,就像这样
var d = new Date();
var total = d.getHours() * 3600 + d.getMinutes() * 60;
document.write(total)
答案 3 :(得分:0)
如果您想采用不手工进行数学运算的原始方法,则需要在时间之前添加一个日期(任何日期都可以,如果您愿意,可以是今天),然后将ms转换为秒(两者都可以)由于Wais Kamal指出的原因)如下。
var d = new Date();
var total = d.getHours() + ":" + d.getMinutes();
var someDate ='July 4, 1776';//works, but maybe safer to choose since 1990
total=someDate+', '+total;
var ts = Date.parse(total);
document.write((ts- Date.parse(someDate))/1000);