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>

参考技术A 在onload的定时器方法里面再调用下setInterval()方法,这样就可以无限循环了。
给你段代码自己看吧:
<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'))
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.js"&gt;&lt;/script&gt;

【讨论】:

【参考方案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 的 hourminute 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 时间日期问题的主要内容,如果未能解决你的问题,请参考以下文章

Globalize.js - 如何解析日期和时间而不仅仅是日期

使用moment.js轻松管理日期和时间

moment.js 连接日期和时间

js页面里时间戳转日期

Moment js日期时间比较

js中怎么把只有年月的日期转为时间戳