2011-08-09 9 views
0

私は(まだ)はJavaScriptで良いことではないので、私は(JavaScriptで)このPHPスクリプトの代替バージョンでいくつかの助けを必要とするphp time関数をjavascript関数にするには?

function until($format = ""){ 
    $now = strtotime("now"); 
    $nextTuesday = strtotime("-1 hour next tuesday"); 
    $until = $nextTuesday - $now; 
    if(empty($format)){ 
     return $until; 
    }else{ 
     return date("$format",$until); 
    } 
} 

だけで、それは次火曜日まで、カウントダウンする必要があります私が見た他のすべてのスクリプトのように、20行以上ではありません。 可能であればタイムスタンプを返す必要があります(オフラインアプリで必要です)

私は本当に幸せになるでしょう(今は幸せではありませんが、もっと幸せになるでしょう)。D

+0

Javascriptが "次火曜日-1時間"、しかし、いくつかの類似した日付関数を持っています達成することができない可能性があります。 ソース:http://www.w3schools.com/jsref/jsref_obj_date.asp – dave

+1

[datejs](http://www.datejs.com/)をチェックアウト –

+2

JavaScriptで今日と次の火曜日の違いを取得するのは簡単です。しかし、あなたはまた、20行未満のコードで日付書式解析エンジンを求めています。日付の書式設定はJavaScriptに組み込まれていません。 1行のコードで日付を手作業でフォーマットすることはできますが、フォーマット文字列を合理的に解析して、20行未満のコードでフォーマットされた日付文字列を返すことはできません。既存のライブラリを使用するか、独自の日付書式エンジンを作成します。 – gilly3

答えて

2

あなたはphpjsサイトを見てみたいことがあり簡単です。 JSで相当数のPHP関数がどのように実行されるかを示すコードがあります。

具体的に:strtotime

+0

恐縮です:D – Mobilpadde

0

JS離れてstrtotimeに遠い何でも。あなたは "次の火曜日"を自分で決めなければなりません。いったん取得したら、.getTime()を使用してタイムスタンプ値を抽出できます。これは、1970年1月1日以降のミリ秒数になります。この値はパラメータとして新しい日付オブジェクトにフィードバックすることもできるので、単純な数値を外部で使用して日付計算を行い、その結果を使って新しい日付オブジェクトを再作成することができます。

あなたは「次火曜日」のコードを持ってたら

var now = new Date(); 
var ts = now.getTime(); 
var next_week = ts + (86400 * 7 * 1000); 
next_week_object = new Date(next_week); 

考え出し、残りは

0

dateは、(将来的に最も近い)次火曜日までミリ秒を取得するには:

function f_until(){ 
    var now = new Date(Date.now()); 
    var nextT = new Date(Date.now()); 
    var cD = nextT.getDay(); 
    if(cD < 2)nextT.setDate(nextT.getDate() + (2-cD)); 
    else nextT.setDate(nextT.getDate() + (9-cD)); 
    nextT.setHours(nextT.getHours() - 1); 
    //alert('next tuesday: '+nextT.toString()); 
    return nextT.getTime() - now.getTime(); 
} 
関連する問題