2012-02-25 9 views
1

有効期限が30分のjavascriptで書かれたクッキーを取得しようとしています。私はスタックや他のウェブサイト上の多くのスレッドに従ってきました。私は動作するはずのコードを持っていますが、クッキーは書き込みではありません。Javascript有効期限のあるクッキーを書き込む

<script> 
    var date = new Date(); 
    date.setTime(date.getTime()+(30*60*1000)); 
    var expires = date.toGMTString(); 
    var offset= -d.getTimezoneOffset()/60; 
    document.cookie = 'timezone='+offset+';expires='+expires+';path=/'; 
</script> 

これはなぜ機能しないのですか?奇妙なことに、以前はクッキーを書いていましたが、正常に動作する期限が切れませんでした。今は書き込むことができません。私がコードを最初に働いていたもの(期限切れではなく)に変更したのはほぼ確実ですが、今はそれをまったく実行できません。

アイデア?

+0

'-d.getTimezoneOffsetは()'は何ですか? –

+0

^GMTからのオフセットです。これは、Cookieが実際に書き込んでいたときに正しく動作しているユーザーのタイムゾーンを設定するためのスクリプトです。 – JimmyBanks

+1

参照:http://jsfiddle.net/hsmPY/2/ –

答えて

2

あなたが定義されていない、あなたはjavascriptのエラー(あなたが道であなたのJavaScriptコンソールで見たのか?)になっている、ここでいくつかのd変数使用しているように見える:あなたはおそらく意味

var offset= -d.getTimezoneOffset()/60; 

を:

var offset= -date.getTimezoneOffset()/60; 

は、変数としてdateと呼ばれます。

+0

[dは定義されていません](http://jsfiddle.net/hsmPY/1/)。 –

+0

デモ:http://jsfiddle.net/hsmPY/2/ –

+0

@JaredFarrish、ええ、それはまさに私の答えで言っていることです。 –

2

はこれを試してみてください。

<script> 
    var date = new Date(); 
    date.setTime(date.getTime()+(30*60*1000)); 
    var expires = date.toGMTString(); 
    var offset= -date.getTimezoneOffset()/60; 
    document.cookie = 'timezone='+offset+';expires='+expires+';path=/'; 
</script> 
関連する問題