var d=new Date();
親自試一試
取當前時間的中文形式
// 獲取當前時間的中文形式
Date.prototype.GetCNDate=function() {
var oDateText='';
oDateText +=this.getFullYear().LenWithZero(4) + new Number(24180).ChrW();
oDateText +=this.getMonth().LenWithZero(2) + new Number(26376).ChrW();
oDateText +=this.getDate().LenWithZero(2) + new Number(26085).ChrW();
oDateText +=this.getHours().LenWithZero(2) + new Number(26102).ChrW();
oDateText +=this.getMinutes().LenWithZero(2) + new Number(20998).ChrW();
oDateText +=this.getSeconds().LenWithZero(2) + new Number(31186).ChrW();
oDateText +=new Number(32).ChrW() + new Number(32).ChrW() + new Number(26143).ChrW() + new Number(26399).ChrW() + new String('26085199682010819977222352011620845').substr(this.getDay() * 5, 5).ToInt().ChrW();
return oDateText;
};
擴展Date格式化
//擴展Date格式化
Date.prototype.Format=function(format) {
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(format)) {
format=format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
if (/(E+)/.test(format)) {
format=format.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(format)) {
format=format.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return format;
}
計算時間差
niapp中的日歷組件需要用到開始時間和結束時間,這個時間是字符串形式的,如'2021-01-21'。
組件網址:https://ext.dcloud.net.cn/plugin?id=56
我的需求是得到7天前到現在日期的字符串形式,即
startDate: '2021-11-04'',
endDate: '2021-11-11',
上代碼:
Date.prototype.format=function(fmt) {
var o={
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小時
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) {
fmt=fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
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;
}
//N天時間戳,時間戳指從1970-01-01 0點開始到某天的毫秒數
function timestamp(days) {
return days * 24 * 60 * 60 * 1000
}
//幾天前,一般以現在的時間為基準,參數默認值老的瀏覽器可能不支持。
function days_ago(day, base_time=Date.now()) {
return new Date(base_time - timestamp(day))
}
//最常用的今天、昨天、明天,返回時間戳
function yesterday(){
return days_ago(1)
}
function tomorrow(){
return days_ago(-1)
}
function today(){
return new Date()
}
///字符串格式化的日期,英文常用,如2021-01-01
function en_format(func){
return func.format('yyyy-MM-dd')
}
function en_today(){
return en_format(today())
}
function en_yesterday(){
return en_format(days_ago(1))
}
function en_tomorrow(){
return en_format(days_ago(-1))
}
function cn_format(func){
return func.format('yyyy年MM月dd日')
}
//中文版今天,如2020年02月22日
function cn_today(){
return cn_format(today())
}
//中文版昨天,如1949年10月01日
function cn_yesterday(){
return cn_format(days_ago(1))
}
//中文版明天,如2035年09月09日
function cn_tomorrow(){
return cn_format(days_ago(-1))
}
cn_today()
'2021年11月10日'
cn_tomorrow()
'2021年11月11日'
cn_yesterday()
'2021年11月09日'
en_today()
'2021-11-10'
en_tomorrow()
'2021-11-11'
en_yesterday()
'2021-11-09'
en_format(days_ago(7))
'2021-11-03'
代碼還能再精簡,不過于我是已經夠用了。
我是@愛玩的安哥,關注我獲取更多有用知識
*請認真填寫需求信息,我們會在24小時內與您取得聯系。