js 时间日期问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 时间日期问题相关的知识,希望对你有一定的参考价值。
新手,刚学习web.
现在定义了num为一个初始化的时间,然后每秒更新,可是这样写始终显示的是初始化的时间值,不能更新,请大神们帮忙修改下
</head>
<body >
<div>
<!-- 定义一个id为time -->
<span id="time"></span>
<script>
num=1502853220000;
window.onload=function()
setInterval(function()
var date=new Date(num);
var year=date.getFullYear(); //获取当前年份
var mon=date.getMonth()+1; //获取当前月份
var da=date.getDate(); //获取当前日
var day=date.getDay(); //获取当前星期几
var h=date.getHours(); //获取小时
var m=date.getMinutes(); //获取分钟
var s=date.getSeconds(); //获取秒
var d=document.getElementById('time');
time.innerhtml='当前时间:'+year+'年'+mon+'月'+da+'日'+'星期'+day+' '+h+':'+m+':'+s;
num=num+1;
,1000)
</script>
</div>
</body>
</html>
给你段代码自己看吧:
<script type="text/javascript" >
$(function()
var screenwidth = document.documentElement.clientWidth;//取得浏览器页面可视区域的宽度
var screenheight = document.documentElement.clientHeight;//取得浏览器页面可视区域的高度
document.getElementById("body").style.width = screenwidth + 'px';
document.getElementById("body").style.height = screenheight + 'px';
document.getElementById("body").style.overflowX = "hidden";
document.getElementById("body").style.overflowY = "hidden";
var changeVal=1;
function changeColor()
var colorVal="rgb("+ getNum() +","+getNum() +"," + getNum() +")";
console.log(colorVal);
$("#testValue").css("background-color", colorVal);
setTimeout(changeColor,300);
setTimeout(changeColor,300);
)
function getNum()
var num=parseInt(Math.random()*255);
return num;
</script> 参考技术B 把代码中的var date = new Date(num);改成var date = new Date();本回答被提问者采纳
moment.js 连接日期和时间
【中文标题】moment.js 连接日期和时间【英文标题】:moment.js concatenate date and time 【发布时间】:2017-07-13 06:29:54 【问题描述】:我在一个表单中有四个字段,其中一些包含初始日期和结束日期 (dd / mm / yyyy),其他包含开始时间和结束时间 (hh: ss)。
我使用 moment.js 获取日期和时间的这些字段的值,例如:
initialdate = moment( $('input#start_date').val(), 'DD/MM/YYYY' );
start_time = moment( $('input#start_time').val(), 'HH:mm');
enddate = moment( $('input#enddate').val(), 'DD/MM/YYYY' );
end_time = moment( $('input#end_time').val(), 'HH:mm');
我打算然后得到两个日期之间的秒差,连接开始日期和时间以及结束日期和时间。我尝试过这样做,但无济于事:
start = initialdate + start_time;
end = enddate + end_time;
tracker = moment.duration( end.diff(start) ).asSeconds();
【问题讨论】:
【参考方案1】:连接日期和时间字符串并将它们解析为一个,例如
var date = '23/02/2017';
var time = '15:42';
var dateTime = moment(date + ' ' + time, 'DD/MM/YYYY HH:mm');
console.log(dateTime.format('YYYY-MM-DD HH:mm'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.js"></script>
【讨论】:
【参考方案2】:失败是尝试连接值,用这样的东西进行测试:
let initialdate = '2016-10-01';
let start_time = '19:04:10';
let enddate = '2016-10-01';
let end_time = '19:04:20';
let datetimeA = moment(initialdate + " " + start_time);
let datetimeB = moment(enddate + " " + end_time);
console.log(datetimeA.format());
console.log(datetimeB.format());
let datetimeC = datetimeB.diff(datetimeA, 'seconds');
console.log(datetimeC);
【讨论】:
initialdate + start_date
失败,因为此时它们都是 Moment 对象。【参考方案3】:
[2021] 最优雅的解决方案是:
/* `date` and `time` are instances of Moment */
date = date.set(
hour: time.get('hour'),
minute: time.get('minute'),
second: 0,
millisecond: 0,
);
【讨论】:
上午或下午呢? 此解决方案确认可以使用上午/下午时间。【参考方案4】:IMO 更清洁的解决方案是使用 moment 的 hour
和 minute
getter 和 setter。
let a = moment()
let b = moment().add(3, 'hour').add(37, 'minute') //b is the time portion
a.hour(b.hour()).minute(b.minute())
【讨论】:
【参考方案5】:只需使用此功能
function getCombinedDateObject(date, time)
let calculatedDateString = '';
if (date && time)
let utcDate = moment.utc(date);
let utcTime = moment.utc(time);
calculatedDateString = moment(`$utcDate.format('YYYY-MM-DD') $utcTime.format("HH:mm:ss z")`);
let finalDateTime = new Date(calculatedDateString);
if (isNaN(finalDateTime.getTime()))
return null;
else
return finalDateTime;
【讨论】:
【参考方案6】:我的回答很简单, 我只是将日期时间更改如下:
const date = new Date(myDate)
const time = new Date(myTime)
date.setHours(time.getHours())
date.setMinutes(time.getMinutes())
【讨论】:
以上是关于js 时间日期问题的主要内容,如果未能解决你的问题,请参考以下文章