我需要使用以下格式的下一个15日期:15.06.2015 23:59:59
示例:
15.06.2015 23:59:59
。15.08.2015 23:59:59
15.03.2015 23:59:59
我需要几秒钟的结果。
我知道如何在PHP中执行此操作,但未能使其与JavaScript一起使用。
非常感谢你的帮助!
答案 0 :(得分:6)
您可以尝试类似
的内容
var date = new Date();
//if 15th of current month is over move to next month
//need to check whether to use >= or just > ie on 15th Jun
//if you want 15 Jun then use > else if you want 15 Jul use >=
var dt = date.getDate();
date.setDate(15);
if (dt >= 15) {
date.setMonth(date.getMonth() + 1);
}
date.setHours(23, 59, 59, 0);
document.write(date)
如果您想要一个返回新日期对象的函数
function setNext15(date) {
var next = new Date(date);
var cache = next.getDate();
next.setDate(15);
if (cache >= 15) {
next.setMonth(date.getMonth() + 1);
}
next.setHours(23, 59, 59, 0);
console.log(next, date);
return next;
}
演示:Fiddle
答案 1 :(得分:2)
请尝试使用以下代码段。
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var d1 = new Date();
if(d1.getDate() > 15)
{
d1.setDate(d1.getDate() + 17);
}
var d2 = new Date(d1.getFullYear(),d1.getMonth(),15,23,59,59,0);
document.getElementById("demo").innerHTML = d2.getDate()+"."+d2.getMonth()+ "." + d2.getFullYear()+ " " + d2.getHours()+":"+ d2.getMinutes() + ":" + d2.getSeconds();
</script>
</body>
</html>
如果您需要更多信息,请与我们联系。
答案 2 :(得分:0)
function next15th(d) {
// prevent mutation of original date
var copy = new Date(d.getTime());
if (copy.getDate() >= 15) {
// not in the same month
copy.setMonth(copy.getMonth() + 1);
}
copy.setDate(15);
copy.setHour(23, 59, 59);
return copy;
}
var d = new Date();
console.log(d);
//> Wed Jun 03 2015 09:04:24 GMT+0300 (EEST)
console.log(next15th(d));
//> Mon Jun 15 2015 23:59:59 GMT+0300 (EEST)
console.log(d);
//> Wed Jun 03 2015 09:04:24 GMT+0300 (EEST)
答案 3 :(得分:0)
给出字符串:
try {
POIFSFileSystem fs = new POIFSFileSystem(input);
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
Row row;
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
row = sheet.getRow(i);
RichTextString CEDGE_INVOICE_NUMBER = row.getCell(0).getRichStringCellValue();
Date INVOICE_DATE = row.getCell(1).getDateCellValue();
System.out.println(INVOICE_DATE);
String sql = "INSERT INTO tablename VALUES('" + CEDGE_INVOICE_NUMBER + "','" + INVOICE_DATE + "')";
pstm = (PreparedStatement) con.prepareStatement(sql);
pstm.execute();
System.out.println("Import rows " + i);
}
con.commit();
pstm.close();
con.close();
input.close();
System.out.println("Success import excel to mysql table");
} catch (ClassNotFoundException e) {
System.out.println(e);
} catch (SQLException ex) {
System.out.println(ex);
} catch (IOException ioe) {
System.out.println(ioe);
}
你可以使用一系列小函数获得接下来的第15个:
var dateString = '15.06.2015 23:59:59';
或者您可以将它们组合在一个功能中:
// Parse string in format d/m/y h:m:s
function parseDMY(s) {
var b = s.split(/\D/);
return new Date(b[2], b[1]-1, b[0], b[3], b[4], b[5]);
}
// Format date as dd.mm.yyyy hh:mm:ss
function formatDMY(date) {
function z(n){return (n<10?'0':'') + n}
return z(date.getDate()) + '.' + z(date.getMonth()+1) + '.' + date.getFullYear() + ' ' +
z(date.getHours()) + ':' + z(date.getMinutes()) + ':' + z(date.getSeconds());
}
// Set to next 15th
function getNext15th(date) {
if (date.getDate() >= 15) {
date.setMonth(date.getMonth() + 1);
}
date.setDate(15);
return date;
}
// Calling each sequentially
console.log(formatDMY(getNext15th(parseDMY(dateString)))); // 15.07.2015 23:59:59
这实际上取决于您需要从函数中重用多少。