不管在JS中還是PHP中,終會遇到時間比較,但是很尷尬的是,舉個例子,2017-04-12和2017-5-21是不一樣或者說不能比較的,
這在PHP和JS都是這種情況,這種情況怎么辦呢,換成統一的格式比想象中的要麻煩,所以都轉換為時間戳比較會是很不錯的選擇.
<script type="text/javascript">
function DateToUnix(string) {
var f = string.split(' ', 2);
var d = (f[0] ? f[0] : '').split('-', 3);
var t = (f[1] ? f[1] : '').split(':', 3);
return (new Date(
parseInt(d[0], 10) || null,
(parseInt(d[1], 10) || 1) - 1,
parseInt(d[2], 10) || null,
parseInt(t[0], 10) || null,
parseInt(t[1], 10) || null,
parseInt(t[2], 10) || null
)).getTime() / 1000;
}
$(function(){
$("input[name='btnS']").click(function(event){
var beginDT = $("input[name='beginDT']").val();
var endDT = $("input[name='endDT']").val();
beginDT = DateToUnix(beginDT);
endDT = DateToUnix(endDT);
alert(beginDT);
alert(endDT);
//獲取當前時間
var timestamp = Date.parse(new Date());
//注意上面生成的時間戳是13位,而DateToUnix方法中轉換為了10位
var currentDT = timestamp/1000;
alert(currentDT);
if(beginDT < currentDT){
alert('起始時間應在今天以后');
event.preventDefault();
}
if(beginDT > endDT){
alert('結束時間應在起始時間之后');
event.preventDefault();
}
})
});
</script>