private int frequency = 6; //更新频率
//--------------今天的开始时间start--------------
Long todayStartUnix = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.setTimeZone(TimeZone.getTimeZone("CST")); // 和服务器时区同步!!
Calendar c = Calendar.getInstance();
String todayStart = c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH)+1) + "-" + c.get(Calendar.DATE);
try {
todayStartUnix = sdf.parse(todayStart).getTime()/1000; // 转为s
} catch (ParseException e1) {
e1.printStackTrace();
}
//--------------今天的开始时间end--------------
long currentTime = System.currentTimeMillis()/1000; //当前时间
long durationTime = currentTime - todayStartUnix; //当前时间距今天开始的时间的差
//--------------本次更新开始时间start---------------------
@SuppressWarnings("unused")
Long startTime = null;
long updateIntervalTime = (long)86400/frequency; //每次更新时间间隔
if(durationTime % updateIntervalTime == 0) { //如果在更新时间点
startTime = currentTime - updateIntervalTime;
} else { //不在更新点
startTime = currentTime - updateIntervalTime - (durationTime % updateIntervalTime);
}
//--------------本次更新开始时间end---------------------
private $frequency = 1;
//获取更新开始时间$startTime
$totalTime = 24*60*60; //一天
$frequency = $this->frequency; //更新频率
$updateIntervalTime = $totalTime/$frequency; //每次更新时间间隔
$currentTime = time(); //当前时间
$dayStartTime = mktime(date('H'),date('i'),date('s'),date('m'),date('d'),date('Y')); //一天开始时间
$durationTime = $dayStartTime = $currentTime; //当前距一天开始的时间差
if($durationTime % $updateIntervalTime == 0) { //如果在更新时间点
$startTime = $currentTime - $updateIntervalTime;
} else { //不在更新点
$startTime = $currentTime - $updateIntervalTime - ($durationTime % $updateIntervalTime);
}