function logMsg(str, noBreak) { var msg = document.getElementById('message'); msg.innerHTML += str; if (!noBreak) // if noBreak is asigned a value (any value), <br /> won't be output msg.innerHTML += '<br />'; } function dateReviver(key, value) { if (typeof value === 'string') { var a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.(\d*))?)Z$/.exec(value); if (a) return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6])); } return value; } function DateReviver(key, value) { if (typeof value === 'string') { var a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.(\d*))?)Z$/.exec(value); if (a) return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6], +a[7])); } return value; } var dt = new Date(); console.clear(); logMsg('dt = ' + dt); var dtJson = JSON.stringify(dt); logMsg('dtJson = ' + dtJson); var dtParsed = JSON.parse(dtJson, DateReviver); //var dtParsed = JSON.parse(dtJson, dateReviver); logMsg('dtParsed = ' + dtParsed); logMsg('Is dt == dtParsed ? ' + (dt === dtParsed)); logMsg('Is dt.getTime() == dtParsed.getTime() ? ' + (dt.getTime() === dtParsed.getTime())); logMsg('dt.getTime() = ' + dt.getTime()) logMsg('dtParsed.getTime() = ' + dtParsed.getTime())
程式說明: <a href="http://2sh.tw/2013/05/javascript.html" target="_blank">JavaScript 中的日期比較問題</a> <hr /> <div id="message" />
body { font-family: Verdana, Arial; font-size: 1.1em; }