wedata

Database: UStoreScriptFunction9

Item Details: 日時の変換

spec_version 1
content /** * 文字列から年月日時分として取り出しす。 * [例] * parseYMDHM("2012/3/5 12:07") == "2012-03-05T12:07:00" * parseYMDHM("2012年3月5日 12:00") == "2012-03-05T12:00:00" * @param str 半角または全角の数字の文字を含む文字列 * @return 年月日時分 */ function parseYMDHM(str) { var nums = pickupNumZ(str, false); if (nums[2] > 31) // 日と時の間のスペースが無視された場合 if (nums[2] < 320) { // nums[2] == 112 などの場合は間違う恐れあり nums[4] = nums[3]; nums[3] = nums[2] % 10; nums[2] = Math.floor(nums[2] / 10 + 0.1); } else { nums[4] = nums[3]; nums[3] = nums[2] % 100; nums[2] = Math.floor(nums[2] / 100 + 0.1); } return nums[0] + "-" + toDigit2(nums[1]) + "-" + toDigit2(nums[2]) + "T" + toDigit2(nums[3]) + ":" + toDigit2(nums[4]) + ":00"; } /** * 文字列から先頭の1個の整数を平成の年としてを取り出し、西暦年に変換する。 * [例] * parseHyear("平成23年") == 2011 * parseHyear("H23") == 2011 * parseHyear("23") == 2011 * @param str 半角または全角の数字の文字を含む文字列 * @return 西暦年 */ function parseHyear(str) { var nums = pickupNumZ(str, false); return ""+ (nums[0] + 1988); } /** * 文字列から平成の年月日として取り出し、西暦年月日に変換する。 * [例] * parseHdate("平成23年9月24日") == "2011-09-24" * parseHdate("H23.12.4 (晴)") == "2011-12-04" * parseHdate("23.9.24") == "2011-09-24" * @param str 半角または全角の数字の文字を含む文字列 * @return 西暦年月日 */ function parseHdate(str) { var nums = pickupNumZ(str, false); return (nums[0] + 1988) +"-"+ toDigit2(nums[1]) +"-"+ toDigit2(nums[2]); } /** * 文字列から月日を取り出す。 * [例] * parseMMDD("9月24日 雨") == "09-24" * parseMMDD("9.24 (晴)") == "09-24" * parseMMDD("10.24") == "10-24" * @param str 半角または全角の数字の文字を含む文字列 * @return 月日 */ function parseMMDD(str) { var nums = pickupNumZ(str, false); return toDigit2(nums[0]) +"-"+ toDigit2(nums[1]); } /** * 文字列から時分を取り出しす。 * [例] * parseHHmm("9時23分") == "09:23" * parseHHmm("9.3") == "09:03" * parseHHmm("午後9時3分") == "21:03" * parseHHmm("-") => 00:00 * @param str 文字列 * @return 時分 */ function parseHHmm(str) { var nums = pickupNumZ(str, false); if (nums.length < 2) return "00:00"; if (str[0] == "後" || str[1] == "後") nums[0] += 12; if (nums.length > 1) return toDigit2(nums[0]) +":"+ toDigit2(nums[1]); else return toDigit2(nums[0]) +":00"; } /** * 1桁の数字の前に"0"を補って2桁にする。 * [例] * twoDigits("12月") == "12" * twoDigits("1日") == "01" * @param num 半角または全角の数字の1贈ォ2桁の数字を含む文字列 * @return 2桁の数字 */ function twoDigits(str) { var nums = pickupNumZ(str, false); return toDigit2(nums[0]); } /** * yy.mm.dd形式のymd(yyは平成の年)とhh:mm形式の時分をYYYY-MM-DDThh:mm:00形式の時刻に変換する。 * makeDate1("平23.8.31","9:55") == "2011-08-31T09:55:00" * @param ymd yy.mm.dd形式の年月日(yyは平成の年) (string) * @param hm hh:mm形式の時分 (string) * @return YYYY-MM-DDThh:mm:00形式の時刻(string) function makeDate1(ymd,hm) { if (ymd.length == 0 || hm.length == 0) return ""; for(var i = 0; ymd[i] < '0' || '9' < ymd[i]; i++); ymd = ymd.substring(i); var yymmdd = ymd.split('.'); var year = parseInt(yymmdd[0]) + 1988; var month = yymmdd[1]; if (month.length == 1) month = '0' + month; var day = yymmdd[2]; if (day.length == 1) day = '0' + day; var i = hm.indexOf(':'); var hour = hm.substring(0, i); if (hour.length == 1) hour = '0' + hour; var minute = hm.substring(i+1); if (minute.length == 1) minute = '0' + minute; return year +'-'+ month +'-'+ day +'T'+ hour +':'+ minute +':00'; } */ function makeDate1(ymd,hm) { if (ymd.length == 0 || hm.length == 0) return ""; for(var i = 0; ymd[i] < '0' || '9' < ymd[i]; i++); ymd = ymd.substring(i); var yymmdd = pickupNumZ(ymd, false); if (yymmdd[0] > 2000) { var year = parseInt(ymd.substring(8,10)) + 1988; var month = ymd.substring(5,7); var day = ymd.substring(2,4); } else { var yymmdd = ymd.split('.'); var year = parseInt(yymmdd[0]) + 1988; var month = yymmdd[1]; if (month.length == 1) month = '0' + month; var day = yymmdd[2]; if (day.length == 1) day = '0' + day; } var i = hm.indexOf(':'); var hour = hm.substring(0, i); if (hour.length == 1) hour = '0' + hour; var minute = hm.substring(i+1); if (minute.length == 1) minute = '0' + minute; return year +'-'+ month +'-'+ day +'T'+ hour +':'+ minute +':00'; } /** * yy.mm.dd形式がPDF変換によりdd.mm.yyと認識され、 * 20dd-mm-yyT00:00:00.000に変換される場合の対応。 * YYYY-MM-DDThh:mm:00形式の時刻に変換して返す。 * @param ymd yy.mm.dd形式の年月日(yyは平成の年) (string) * @param hm hh:mm形式の時分 (string) * @return YYYY-MM-DDThh:mm:00形式の時刻(string) */ function makeDate1x(ymd,hm) { //var yymmdd = ymd.split('.'); var year = parseInt(ymd.substring(8,10)) + 1988; var month = ymd.substring(5,7); var day = ymd.substring(2,4); var i = hm.indexOf(':'); var hour = hm.substring(0, i); if (hour.length == 1) hour = '0' + hour; var minute = hm.substring(i+1); if (minute.length == 1) minute = '0' + minute; return year +'-'+ month +'-'+ day +'T'+ hour +':'+ minute +':00'; } /** * 「YYYY」形式の年、「数字+文字」形式の月、「hh」形式の時間、「mm」形式の分から、YYYY-MM-DDThh:mm:00形式の時刻に変換して返す。 * @param year 「YYYY」形式の年(string) * @param mmdd 「数字+文字」形式の月。たとえば"8月17日" (string) * @param hour 「hh」形式の時間(string) * @param minute 「mm」形式の分(string) * @return YYYY-MM-DDThh:mm:00形式の時刻(string) */ function makeDate2(year, mmdd, hour, minute) { var nums = pickupNums(mmdd); var month = nums[0]; if (month < 10) month = '0' + month; var day = nums[1]; if (day < 10) day = '0' + day; return year +'-'+ month +'-'+ day +'T'+ hour +':'+ minute +':00'; } /** * 「YYYY/MM/DD hh:mm」から「YYYY-MM-DDThh:mm:00」形式の時刻に変換して返す。 * (注)入力の区切り文字は他のものでもよい。 * @param ymdhm 「YYYY/MM/DD hh:mm」(string) */ function makeDate3(ymdhm) { var nums = pickupNums(ymdhm); return nums[0] +'-'+ nums[1] +'-'+ nums[2] +'T'+ nums[3] +':'+ nums[4] +':00'; } /** * 年が平成のはずが西暦となっている。 * (「PDF Converter」の変換からの可能性あり) * [例] * parseYMD("2023/6/5)[H23/6/5] == "2011-06-05" * @param str 半角または全角の数字の文字を含む文字列 * @return 年月日時分 */ function parse2000HMD(str) { var nums = pickupNumZ(str, false); return (nums[0]-12) + "-" + toDigit2(nums[1]) + "-" + toDigit2(nums[2]); }

History

Back