日付をタイムスタンプに変換したいのですが、私の入力は26-02-2012
です。使った
new Date(myDate).getTime();
NaNと書かれています。これを変換する方法を教えてください。
Date(myDate).getTime()
(コードとしてマークアップしたもの)を使用しましたか、それともその前にある「新しい」という言葉はコードの一部であることを意味していますか?より多くの努力を注ぐほど、より良い答えが得られます。
日付をタイムスタンプに変換したいのですが、私の入力は26-02-2012
です。使った
new Date(myDate).getTime();
NaNと書かれています。これを変換する方法を教えてください。
Date(myDate).getTime()
(コードとしてマークアップしたもの)を使用しましたか、それともその前にある「新しい」という言葉はコードの一部であることを意味していますか?より多くの努力を注ぐほど、より良い答えが得られます。
回答:
var myDate = "26-02-2012";
myDate = myDate.split("-");
var newDate = myDate[1]+","+myDate[0]+","+myDate[2];
console.log(new Date(newDate).getTime());
更新:
var myDate = "26-02-2012";
myDate = myDate.split("-");
var newDate = myDate[1]+"/"+myDate[0]+"/"+myDate[2];
console.log(new Date(newDate).getTime());
デモ(Chrome、FF、Opera、IE、Safariでテスト済み)。
NaN
。サファリでは、他の可能なコンストラクタを使用する必要がありnew Date(year, month, day);
、この例については、:new Date(myDate[2], myDate[1], myDate[0]);
YYYY-MM-DD
)に変換することをお勧めしますDate()
。
new Date(newDate).getTime()
タイムスタンプはミリ秒単位で生成されます。
Math.floor(new Date(newDate).getTime() / 1000)
この関数を試してみてください。Date.parse()メソッドを使用しており、カスタムロジックを必要としません。
function toTimestamp(strDate){
var datum = Date.parse(strDate);
return datum/1000;
}
alert(toTimestamp('02/13/2009 23:31:30'));
あなたは自分の日付の数字と変更を逆にする必要がある-
と,
:
new Date(2012,01,26).getTime(); // 02 becomes 01 because getMonth() method returns the month (from 0 to 11)
あなたの場合:
var myDate="26-02-2012";
myDate=myDate.split("-");
new Date(parseInt(myDate[2], 10), parseInt(myDate[1], 10) - 1 , parseInt(myDate[0]), 10).getTime();
PS UKロケールはここでは関係ありません。
Number
a 0
で始まる文字列での使用は問題がparseInt
あります- 基数を使用して指定します。
function getTimeStamp() {
var now = new Date();
return ((now.getMonth() + 1) + '/' + (now.getDate()) + '/' + now.getFullYear() + " " + now.getHours() + ':'
+ ((now.getMinutes() < 10) ? ("0" + now.getMinutes()) : (now.getMinutes())) + ':' + ((now.getSeconds() < 10) ? ("0" + now
.getSeconds()) : (now.getSeconds())));
}
読み取り可能なタイムスタンプを次の形式で取得したい場合は、 yyyymmddHHMMSS
> (new Date()).toISOString().replace(/[^\d]/g,'') // "20190220044724404"
> (new Date()).toISOString().replace(/[^\d]/g,'').slice(0, -3) // "20190220044724"
> (new Date()).toISOString().replace(/[^\d]/g,'').slice(0, -9) // "20190220"
使用例:バックアップファイルの拡張子。 /my/path/my.file.js.20190220
文字列は、Date
オブジェクトが処理するように指定されている形式ではありません。自分で解析するか、MomentJSなどの日付解析ライブラリを使用するか(現在のところ、私の知る限りでは維持されていません)、DateJSを実行するか、2012-02-29
問い合わせる前に正しい形式(例:)にマッサージする必要があります。Date
、解析する。
取得する理由NaN
:new Date(...)
無効な文字列を処理するように要求するDate
と、無効な日付に設定されたオブジェクトがnew Date("29-02-2012").toString()
返されます(return "Invalid date"
)。getTime()
この状態で日付オブジェクトを呼び出すと、が返されますNaN
。
Date
オブジェクトを変更しない(DOMとは何の関係もない)ことでした。
/**
* Date to timestamp
* @param string template
* @param string date
* @return string
* @example datetotime("d-m-Y", "26-02-2012") return 1330207200000
*/
function datetotime(template, date){
date = date.split( template[1] );
template = template.split( template[1] );
date = date[ template.indexOf('m') ]
+ "/" + date[ template.indexOf('d') ]
+ "/" + date[ template.indexOf('Y') ];
return (new Date(date).getTime());
}