最も近い最新の日付

  • /*
     * @title 最も近い最新の日付
     * @description この例では今日の8時に最も近い日付を返す
     * @include http://*
     * @license いまは迷っている
     * @require 
     */
    
    (function(){
    //今日の日本
    function g(a){
    	var date=new Date();
    	var n=date.toISOString().match(/[^Z]+/)[0].split(/\D/);
    	return new Date(Date.UTC(n[0],n[1],n[2],a,0,0,0)-3600000*9).toISOString();
    }
    function f(a,b){
    	var date=new Date(g(b));
    	var k,i;
    	k=new Date();
    	k=a.shift();
    	while(i=a.shift()){
    		k=new Date(k);
    		i=new Date(i);
    		if(
    				Math.abs(k.getTime()-date.getTime())>Math.abs(i.getTime()-date.getTime())&&
    				(Math.abs(k.getTime()-date.getTime())==Math.abs(i.getTime()-date.getTime())||
    					k.getTime()<i.getTime())){
    			k=i;
    		}
    	}
    	return k;
    }
    
    
    alert (f([g(7),g(9),g(11)],8));
    	
    })();
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2014/10/19 18:29:39 - 2014-10-19
  2. 2014/10/19 18:28:18 - 2014-10-19