js操作时间--比较两个时间大小,时间间隔的计算

 
    function rq()
            {
                var jsrq="2008-12-24";
                var ksrq="2007-10-10";
                var aDate = jsrq.split("-");
                var oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);  //结束日期
                aDate = ksrq.split("-");
                var oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);    //开始日期
                if(oDate1<=oDate2) {
                    alert("'结束日期'必须大于'开始日期'!");
                    textObj.value = "";
                }
                else {
                    //ts 相减的差值
                    var ts = DateDiff(jsrq, ksrq);
                }
            }
            
            //计算天数差的函数,通用
    function DateDiff(sDate1, sDate2){  //sDate1和sDate2是2002-12-18格式
        var aDate, oDate1, oDate2, iDays;
        aDate = sDate1.split("-");
        oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);  //转换为12-18-2002格式
        aDate = sDate2.split("-");
        oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
        iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 /24);  //把相差的毫秒数转换为天数
        return iDays;
}


        //比较两个时间大小
        function opinionStartTimeEndTime(stratTime, endTime) {
            var strat = stratTime.split("-");
            var end = endTime.split("-");
            var sdate = new Date(strat[0], strat[1], strat[2]);
            var edate = new Date(end[0], end[1], end[2]);
            if (sdate.getTime() > edate.getTime()) {
                return false;
            }
            return true;
        }


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的实现多个模型自动布局在一个平面上的示例代码,使用了Three.js中的OrbitControls和Raycaster: ```javascript // 初始化场景、相机、渲染器 var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); var renderer = new THREE.WebGLRenderer({ antialias: true }); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); // 添加轨道控制器 var controls = new THREE.OrbitControls(camera, renderer.domElement); // 添加平面 var planeGeometry = new THREE.PlaneBufferGeometry(10, 10); var planeMaterial = new THREE.MeshBasicMaterial({ color: 0xcccccc, side: THREE.DoubleSide }); var plane = new THREE.Mesh(planeGeometry, planeMaterial); plane.rotation.x = -Math.PI / 2; scene.add(plane); // 添加多个模型 var models = []; var loader = new THREE.GLTFLoader(); loader.load('model1.glb', function (gltf) { var model = gltf.scene; scene.add(model); models.push(model); }); loader.load('model2.glb', function (gltf) { var model = gltf.scene; scene.add(model); models.push(model); }); // 布局模型 var layout = function () { var size = 1.5; // 模型之间的间隔 var row = 0, col = 0; for (var i = 0; i < models.length; i++) { var model = models[i]; model.position.set(col * size, 0, row * size); col++; if (col > 2) { row++; col = 0; } } }; // 窗口大小变化时重新计算相机和渲染器的大小 window.addEventListener('resize', function () { camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); renderer.setSize(window.innerWidth, window.innerHeight); }, false); // 渲染循环 var animate = function () { requestAnimationFrame(animate); controls.update(); renderer.render(scene, camera); }; animate(); // 监听鼠标点击事件,获取模型信息 var raycaster = new THREE.Raycaster(); var mouse = new THREE.Vector2(); window.addEventListener('click', function (event) { // 计算鼠标点击位置 mouse.x = (event.clientX / window.innerWidth) * 2 - 1; mouse.y = -(event.clientY / window.innerHeight) * 2 + 1; // 从相机发射一条射线,检测是否与模型相交 raycaster.setFromCamera(mouse, camera); var intersects = raycaster.intersectObjects(models); // 如果有相交的模型,输出模型名称 if (intersects.length > 0) { console.log(intersects[0].object.name); } }, false); // 在模型加载完成后自动布局 loader.manager.onLoad = function () { layout(); }; ``` 这个示例将两个GLTF模型加载到场景中,并将它们布局在一个10x10的平面上。当窗口大小改变时,相机和渲染器也会自适应调整大小。当鼠标点击一个模型时,控制台会输出模型名称。模型布局的函数是`layout()`,它将每个模型按行列布局,并设置它们的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值