不管在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>