js小结

本文介绍JavaScript中实现时间显示、倒计时及网络时间同步的方法,包括利用Date对象获取当前时间、通过定时器更新时间显示、从不同网站获取网络标准时间进行本地时间校准等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个函数访问了它的外部变量就是闭包

继承

1 function A(x){
2   this.x= x;
3 }
4 A.prototype.a="a";
5 function B(x,y){
6   this.y= y;
7   A.call(this,x);
8 }
9 B.prototype.b1=function(){
10   alert("b1");
11 }

//B对象重新指向A构造方法,B额外定义的属性和方法销毁
12 B.prototype=new A();

//重新给B的对象定义属性和方法
13 B.prototype.b2=function(){
14   alert("b2");
15 }

//B的构造器指向B OBJ的具有B的原型,否则是A的原型
16 B.prototype.constructor= B;
17 var obj=new B(1,3);

获得当前系统时间:
function showDT() { 
var date = new Date();
this .year = date.getFullYear();
this .month = date.getMonth() + 1;
this .date = date.getDate();
this .day = new Array( "星期日" , "星期一" , "星期二" , "星期三" , "星期四" , "星期五" , "星期六" )[date.getDay()];
this .hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
this .minute = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
this .second = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
var currentTime = "现在是:" + this .year + "年" + this .month + "月" + this .date + "日 " + this .hour + ":" + this .minute + ":" + this .second + " " + this .day;
document.getElementById("time"). innerHTML =currenTime; 
window.setTimeout( showDT, 1000);//延迟一秒加载  
}
setInterval( " showDT();" ,1000); //每隔一秒执行一次
date.toLocaleDateString(); //获取当前日期 如 2014年6月25日
date.toLocaleTimeString(); //获取当前时间 如 下午4:45:06
date.toLocaleString(); //获取日期与时间 如 2014年6月25日 下午4:45:06
======================================================================================================================
获得网络标准时间
var longTimex="";//网络时间
var xTime="";//本地时间与网络时间的差距
$(function (){
 
  $.ajax({
  url : "/center-home-web/getIntelTime?time="+new Date().getTime(),
  dataType:"json",
  success : function(data){
   longTimex=data.time;
   xTime=longTimex-new Date().getTime();
   //console.log(xTime);
   $("#jnkc").html(new Date(new Date().getTime()+xTime).toLocaleString()+' 星期'+'日一二三四五六'.charAt(new Date(new Date().getTime()+xTime).getDay()));
   window.setInterval(setTime, 1000);
  }
 });
 $("#dqmore").hide();
 
});
function setTime(){
 jnkc.innerHTML=new Date(new Date().getTime()+xTime).toLocaleString()+' 星期'+'日一二三四五六'.charAt(new Date(new Date().getTime()+xTime).getDay());
}
读取别的网站授时时间、国家授时中心时间
  1. package com.my.utils;  
  2.   
  • import java.net.URL;  
  • import java.net.URLConnection;  
  • import java.text.SimpleDateFormat;  
  • import java.util.Date;  
  • import java.util.Locale;  
  •   
  • import org.springframework.util.StringUtils;  
  •   
  • import com.my.consist.DateConsist;  
  •   
  • /** 
  •  * 获取网络时间 
  •  *  
  •  * @author wbw 
  •  *  
  •  */  
  • public class WebDateUtils {  
  •   
  •     /** 
  •      * 默认时间格式 
  •      */  
  •     private static final String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";  
  •   
  •     /** 
  •      * 根据URL和格式化类型获取时间 
  •      *  
  •      * @param webuUrl 
  •      *            网络URL 
  •      * @param format 
  •      *            格式 
  •      * @return 
  •      */  
  •     public static String getWebsiteDatetime(String webuUrl, String format) {  
  •         try {  
  •             // 判断当前是否传入URL  
  •             if (!StringUtils.isEmpty(webuUrl)) {  
  •                 URL url = new URL(webuUrl);// 获取url对象  
  •                 URLConnection uc = url.openConnection();// 获取生成连接对象  
  •                 uc.connect();// 发出连接请求  
  •                 long ld = uc.getDate();// 读取网站日期时间  
  •                 Date date = new Date(ld);// 转化为时间对象  
  •                 SimpleDateFormat sdf = new SimpleDateFormat(  
  •                         format != null ? format : DEFAULT_FORMAT, Locale.CHINA);// 输出北京时间  
  •                 return sdf.format(date);  
  •             } else {  
  •                 System.out.println("URL Error!!!");  
  •             }  
  •         } catch (Exception e) {  
  •             e.printStackTrace();  
  •         }  
  •         return null;  
  •   
  •     }  
  •   
  •     /** 
  •      * 测试 
  •      *  
  •      * @param args 
  •      */  
  •     public static void main(String[] args) {  
  •         String format = "yyyy-MM-dd HH:mm:ss";  
  •         System.out.println(getWebsiteDatetime(DateConsist.WEB_URL1, format)  
  •                 + " [bjtime]");  
  •         System.out.println(getWebsiteDatetime(DateConsist.WEB_URL2, format)  
  •                 + " [百度]");  
  •         System.out.println(getWebsiteDatetime(DateConsist.WEB_URL3, format)  
  •                 + " [淘宝]");  
  •         System.out.println(getWebsiteDatetime(DateConsist.WEB_URL4, format)  
  •                 + " [中国科学院国家授时中心]");  
  •         System.out.println(getWebsiteDatetime(DateConsist.WEB_URL5, format)  
  •                 + " [360安全卫士]");  
  •         System.out.println(getWebsiteDatetime(DateConsist.WEB_URL6, format)  
  •                 + " [beijing-time]");  
  •         System.out.println(getWebsiteDatetime(DateConsist.WEB_URL7, format)  
  •                 + " [京东-time]");  
  •     }  
  • }  
  • package com.my.utils;
    
    import java.net.URL;
    import java.net.URLConnection;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Locale;
    
    import org.springframework.util.StringUtils;
    
    import com.my.consist.DateConsist;
    
    /**
     * 获取网络时间
     * 
     * @author wbw
     * 
     */
    public class WebDateUtils {
    
    	/**
    	 * 默认时间格式
    	 */
    	private static final String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";
    
    	/**
    	 * 根据URL和格式化类型获取时间
    	 * 
    	 * @param webuUrl
    	 *            网络URL
    	 * @param format
    	 *            格式
    	 * @return
    	 */
    	public static String getWebsiteDatetime(String webuUrl, String format) {
    		try {
    			// 判断当前是否传入URL
    			if (!StringUtils.isEmpty(webuUrl)) {
    				URL url = new URL(webuUrl);// 获取url对象
    				URLConnection uc = url.openConnection();// 获取生成连接对象
    				uc.connect();// 发出连接请求
    				long ld = uc.getDate();// 读取网站日期时间
    				Date date = new Date(ld);// 转化为时间对象
    				SimpleDateFormat sdf = new SimpleDateFormat(
    						format != null ? format : DEFAULT_FORMAT, Locale.CHINA);// 输出北京时间
    				return sdf.format(date);
    			} else {
    				System.out.println("URL Error!!!");
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return null;
    
    	}
    
    	/**
    	 * 测试
    	 * 
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		String format = "yyyy-MM-dd HH:mm:ss";
    		System.out.println(getWebsiteDatetime(DateConsist.WEB_URL1, format)
    				+ " [bjtime]");
    		System.out.println(getWebsiteDatetime(DateConsist.WEB_URL2, format)
    				+ " [百度]");
    		System.out.println(getWebsiteDatetime(DateConsist.WEB_URL3, format)
    				+ " [淘宝]");
    		System.out.println(getWebsiteDatetime(DateConsist.WEB_URL4, format)
    				+ " [中国科学院国家授时中心]");
    		System.out.println(getWebsiteDatetime(DateConsist.WEB_URL5, format)
    				+ " [360安全卫士]");
    		System.out.println(getWebsiteDatetime(DateConsist.WEB_URL6, format)
    				+ " [beijing-time]");
    		System.out.println(getWebsiteDatetime(DateConsist.WEB_URL7, format)
    				+ " [京东-time]");
    	}
    }
    

      控制台输出信息

      1. 2016-02-01 16:28:27 [bjtime]  
      2. 2016-02-03 16:27:47 [百度]  
      3. 2016-02-03 16:27:47 [淘宝]  
      4. 2016-02-03 16:27:47 [中国科学院国家授时中心]  
      5. 2016-02-03 16:27:47 [360安全卫士]  
      6. 2016-02-03 16:27:47 [beijing-time]  
      7. 2016-02-03 16:29:25 [京东-time]  

    =========================================================================================================================
    今天还剩下的时间倒计时
        var date = new Date();
        var year = date.getFullYear();
        var newDate = new Date();
        newDate.setFullYear(year+1);
        newDate.setMonth(0,1);
        newDate.setHours(0,0,0);
        var itime = newDate.getTime()-date.getTime();
        var isecond = parseInt(itime/1000);
        var newDay = parseInt(isecond/24/60/60);
        var modeDay = isecond%(24*60*60);
        var newHour = parseInt(modeDay/60/60);
        var modeHour = modeDay%(60*60);
        var newMinute = parseInt(modeHour/60);
        var modeMinute = modeHour%60;
        var newSecond = parseInt(modeMinute);
        $(".time").text(year+"年还剩"+newDay+"天"+newHour+"时"+newMinute+"分"+newSecond+"秒");
        // document.write(year+"年还剩"+newDay+"天"+newHour+"时"+newMinute+"分"+newSecond+"秒"+"<br/>");
      }
      window.setInterval(getTimeLeft,1000);
    
    
    
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值