js獲取日期:昨天今天和明天、后天
js 日期 獲取今天、昨天、明天第一個函數
function getDay(day){ var today = new Date() // 獲取時間戳(毫秒級) /* day為1,則是,明天的時間戳 day為-1,則是,昨天的時間戳 day為-2,則是,前天的時間戳 */ var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day // Date.setTime(時間戳):設置當前日期的時間 today.setTime(targetday_milliseconds) console.log('today=', today) // today= Sun Mar 05 2023 16:14:56 GMT+0800 (中國標準時間) var tYear = today.getFullYear() // 年 var tMonth = today.getMonth() // 月 var tDate = today.getDate() // 日 tMonth = this.doHandleMonth(tMonth + 1) tDate = this.doHandleMonth(tDate) console.log('返回年月日=', tYear + '-' + tMonth + '-' + tDate) return tYear + '-' + tMonth + '-' + tDate } function doHandleMonth(month) { var m = month if (month.toString().length == 1) { m = '0' + month } return m }
js獲取今天昨天明天的日期第二個函數
/* * @params date 日期 * @params type 日期 prev/current/next 昨天/今天/明天 * @params fmt 日期拼接符 */ function getDays(date, type, fmt) { let currentDate = new Date(date) let y = currentDate.getFullYear() let m = currentDate.getMonth() + 1 let d = currentDate.getDate() function dateFormat(date, fmt) { let y = new Date(date).getFullYear() let m = new Date(date).getMonth() + 1 let d = new Date(date).getDate() return `${y}${fmt}${m}${fmt}$vvxyksv9kd` } switch (type) { case "prev": if (d - 1 < 1) { if (m - 1 < 1) { y = y - 1 m = 12 } else { m = m - 1 } d = new Date(y, m, 0).getDate() } else { d = d - 1 } break case "current": break case "next": if (d + 1 > new Date(y, m, 0).getDate()) { if (m + 1 > 12) { y = y + 1 m = 1 d = 1 } else { m = m + 1 d = 1 } } else { d = d + 1 } break; default: break; } return dateFormat(new Date(`${y}-${m}-$vvxyksv9kd`), fmt) } console.log(getDays(new Date('2023-5-13'), "prev", "-")); console.log(getDays(new Date('2023-5-30'), "next", "-")); console.log(getDays(new Date('2023-5-31'), "next", "-"));
補充
<html> <head> <meta http-equiv="Content-Type" content="textml; charset=utf-8"> <title>js獲取日期:前天、昨天、今天、明天、后天 - Liehuo.Net</title> </head> <body> <script language="JavaScript" type="text/javascript"> function GetDateStr(AddDayCount) { var dd = new Date(); dd.setDate(dd.getDate()+AddDayCount);//獲取AddDayCount天后的日期 var y = dd.getFullYear(); var m = dd.getMonth()+1;//獲取當前月份的日期 var d = dd.getDate(); return y+"-"+m+"-"+d; } document.write("前天:"+GetDateStr(-2)); document.write("<br />昨天:"+GetDateStr(-1)); document.write("<br />今天:"+GetDateStr(0)); document.write("<br />明天:"+GetDateStr(1)); document.write("<br />后天:"+GetDateStr(2)); document.write("<br />大后天:"+GetDateStr(3)); </script> </body> <html>
其中有一種方法是:Date.parse(dateVal),此函數功能強大,但是有個致命的缺點,那就是不支持我們常用的“年-月-日”格式,短日期可以使用“/”或“-”作為日期分隔符,但是必須用月/日/年的格式來表示,例如"7/20/96"。
另一種方法是使用 split,比如:
var dtStr = "2023-05-25"; var dtArr = dtStr.split("-"); var dt = new Date(dtArr[0], dtArr[1], dtArr[2]);
但這種方法較為死板,要求固定的日期格式,只有在沒有辦法的情況下才用。
如果我們可以將年月日拆分開,就盡量將其拆開,比如 ASP 分別輸出年月日。然后用 new Date 來處理,返回的便是日期類型。
日期格式化
<script language="javascript" type="text/javascript"><!-- /** * 對Date的擴展,將 Date 轉化為指定格式的String * 月(M)、日(d)、12小時(h)、24小時(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 個占位符 * 年(y)可以用 1-4 個占位符,毫秒(S)只能用 1 個占位符(是 1-3 位的數字) * eg: * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 * (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04 * (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04 * (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04 * (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 */ Date.prototype.pattern=function(fmt) { var o = { "M+" : this.getMonth()+1, //月份 "d+" : this.getDate(), //日 "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小時 "H+" : this.getHours(), //小時 "m+" : this.getMinutes(), //分 "s+" : this.getSeconds(), //秒 "q+" : Math.floor((this.getMonth()+3)/3), //季度 "S" : this.getMilliseconds() //毫秒 }; var week = { "0" : "\u65e5", "1" : "\u4e00", "2" : "\u4e8c", "3" : "\u4e09", "4" : "\u56db", "5" : "\u4e94", "6" : "\u516d" }; if(/(y+)/.test(fmt)){ fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); } if(/(E+)/.test(fmt)){ fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "\u661f\u671f" : "\u5468") : "")+week[this.getDay()+""]); } for(var k in o){ if(new RegExp("("+ k +")").test(fmt)){ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); } } return fmt; } var date = new Date(); window.alert(date.pattern("yyyy-MM-dd hh:mm:ss")); // --></script>
到此這篇關于js獲取日期:昨天今天和明天、后天的文章就介紹到這了,更多相關js獲取日期內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
IE,firefox(火狐)瀏覽器無提示關閉窗口js實現代碼小結
在不是js打開的頁面上按window.close(),會有提示框,很煩,現在可以不用了,沒有提示框直接關閉窗口。下面腳本之家編輯特為大家整理了一些。2009-09-09JavaScript必知必會(三) String .的方法來自何方
這篇文章主要介紹了JavaScript必知必會(三) String .的方法來自何方的相關資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-06-06bootstrap table表格插件之服務器端分頁實例代碼
Bootstrap Table是基于Bootstrap的輕量級表格插件,只需要簡單的配置就可以實現強大的支持固定表頭、單復選、排序、分頁、搜索以及自定義表頭等功能。這篇文章主要介紹了bootstrap table表格插件之服務器端分頁實例代碼,需要的朋友可以參考下2018-09-09