小プログラムwxsの時間フォーマットとフォーマット時間とdate時間は互いに回転します.
WXS(WeiXin Script)は小さいプログラムのシナリオ言語で、wxsとjavascriptは異なる言語で、自分の文法があって、javascriptと一致しません.その中には多くの日常的に使われているjavascript関数が含まれています.wxsでは同じように使用できません.最近はリストを作成する時、時間の書式設定操作に関連しています.この問題について、以前書いたフォーマットツールの関数は直接に小さいプログラム項目のwxsファイルにコピーして、関数は正常に実行できません.この中には以下のいくつかのエラーが含まれています.正規表現は文字列のreplace関数での使用方法が異なり、var a=/[0−9]/このような方法で直接的に宣言することはできません.正しい方式はvar reg=getRegExp(「-」「g」)である. は、現在の時間をnew Date()ではなく、getDate方式で取得する. get Date('2018/12/12')は、対応する日付のdateタイプの時間を取得することができます. 上の異同に従って、修正後の時間書式関数コードは
var formatNumber = function (n) {
n = n.toString()
return n[1] ? n : '0' + n
}
var regYear = getRegExp("(y+)", "i");
var dateFormat = function (timestamp, format) {
if (!format) {
format = "yyyy-MM-dd hh:mm:ss";
}
timestamp = parseInt(timestamp);
// getDate() date
var realDate = getDate(timestamp);
function timeFormat(num) {
return num < 10 ? '0' + num : num;
}
var date = [
["M+", timeFormat(realDate.getMonth() + 1)],
["d+", timeFormat(realDate.getDate())],
["h+", timeFormat(realDate.getHours())],
["m+", timeFormat(realDate.getMinutes())],
["s+", timeFormat(realDate.getSeconds())],
["q+", Math.floor((realDate.getMonth() + 3) / 3)],
["S+", realDate.getMilliseconds()],
];
var reg1 = regYear.exec(format);
// console.log(reg1[0]);
if (reg1) {
format = format.replace(reg1[1], (realDate.getFullYear() + '').substring(4 - reg1[1].length));
}
for (var i = 0; i < date.length; i++) {
var k = date[i][0];
var v = date[i][1];
// getRegExp
var reg2 = getRegExp("(" + k + ")").exec(format);
if (reg2) {
format = format.replace(reg2[1], reg2[1].length == 1
? v : ("00" + v).substring(("" + v).length));
}
}
return format;
}
日付と時刻を書式設定した文字列をタイムスタンプに変換します.function parse(fmt) {
fmt1 = fmt.substring(0, 19);
var reg = getRegExp("-", "g");
fmt2 = fmt1.replace(reg, '/');
var timestamp = getDate(fmt2).getTime();
return timestamp;
}
コール方法は以下の通りですfunction getDateByDateTimeFmt(dateTimeFmt) {
return dateFormat(parse(dateTimeFmt), 'MM dd ');
}
getDateByDateTimeFmt('2012-12-12 13:12:12') // => 12 12