dateHelper.js.soonsu 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500
  1. String.prototype.toDate = toDate;
  2. Date.prototype.getDateFormat = getDateFormat;
  3. Date.prototype.getAddDate = getAddDate;
  4. Date.prototype.getDayOfWeek = getDayOfWeek;
  5. Date.prototype.getMonthDay = getMonthDay;
  6. Date.prototype.isLeapYear = isLeapYear;
  7. function isNull(str){
  8. return ((str == null || str == "" || str == "undefined") ? true:false);
  9. }
  10. function toDate(pPattern)
  11. {
  12. var index = -1;
  13. var year;
  14. var month;
  15. var day;
  16. var hour = 0;
  17. var min = 0;
  18. var sec = 0;
  19. var ms = 0;
  20. if(isNull(pPattern)) pPattern = "YYYYMMDD";
  21. if ((index = pPattern.indexOf("YYYY")) == -1 ) {
  22. index = pPattern.indexOf("YY");
  23. year = "20" + this.substr(index, 2);
  24. } else {
  25. year = this.substr(index, 4);
  26. }
  27. index = pPattern.indexOf("MM");
  28. month = this.substr(index, 2);
  29. index = pPattern.indexOf("DD");
  30. day = this.substr(index, 2);
  31. if ((index = pPattern.indexOf("hh")) != -1 ) {
  32. hour = this.substr(index, 2);
  33. }
  34. if ((index = pPattern.indexOf("mm")) != -1 ) {
  35. min = this.substr(index, 2);
  36. }
  37. if ((index = pPattern.indexOf("ss")) != -1 ) {
  38. sec = this.substr(index, 2);
  39. }
  40. if ((index = pPattern.indexOf("SS")) != -1 ) {
  41. ms = this.substr(index, 2);
  42. }
  43. return new Date(year, month - 1, day, hour, min, sec, ms);
  44. }
  45. function getDateFormat(pPattern)
  46. {
  47. var GLB_MONTH_IN_YEAR = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
  48. var GLB_DAY_IN_WEEK = new Array("Sunday", "Monday", "Tuesday", "Wednesday","Thursday", "Friday", "Saturday");
  49. var year = this.getFullYear();
  50. var month = this.getMonth() + 1;
  51. var day = this.getDate();
  52. var dayInWeek = this.getDay();
  53. var hour24 = this.getHours();
  54. var ampm = (hour24 < 12) ? 0 : 1;
  55. var hour12 = (hour24 > 12) ? (hour24 - 12) : hour24;
  56. var min = this.getMinutes();
  57. var sec = this.getSeconds();
  58. var YYYY = "" + year;
  59. var YY = YYYY.substr(2);
  60. var MM = (("" + month).length == 1) ? "0" + month : "" + month;
  61. var MON = GLB_MONTH_IN_YEAR[month-1];
  62. var DD = (("" + day).length == 1) ? "0" + day : "" + day;
  63. var DAY = GLB_DAY_IN_WEEK[dayInWeek];
  64. var HH = (("" + hour12).length == 1) ? "0" + hour12 : "" + hour12;
  65. var hh = (("" + hour24).length == 1) ? "0" + hour24 : "" + hour24;
  66. var mm = (("" + min).length == 1) ? "0" + min : "" + min;
  67. var ss = (("" + sec).length == 1) ? "0" + sec : "" + sec;
  68. var SS = "" + this.getMilliseconds();
  69. var a = (a == 0) ? "AM" : "PM";
  70. var dateStr;
  71. var index = -1;
  72. if (typeof(pPattern) == "undefined") {
  73. dateStr = "YYYYMMDD";
  74. } else {
  75. dateStr = pPattern;
  76. }
  77. dateStr = dateStr.replace(/a/g, a);
  78. dateStr = dateStr.replace(/YYYY/g, YYYY);
  79. dateStr = dateStr.replace(/YY/g, YY);
  80. dateStr = dateStr.replace(/MM/g, MM);
  81. dateStr = dateStr.replace(/MON/g, MON);
  82. dateStr = dateStr.replace(/DD/g, DD);
  83. dateStr = dateStr.replace(/DAY/g, DAY);
  84. dateStr = dateStr.replace(/hh/g, hh);
  85. dateStr = dateStr.replace(/HH/g, HH);
  86. dateStr = dateStr.replace(/mm/g, mm);
  87. dateStr = dateStr.replace(/ss/g, ss);
  88. dateStr = dateStr.replace(/SS/g, SS);
  89. return dateStr;
  90. }
  91. function getAddDate(pNum, pKind)
  92. {
  93. var rtnDate = this;
  94. if(isNull(pKind)) pKind = "D";
  95. switch(pKind){
  96. case "Y" : rtnDate.setFullYear(this.getFullYear() + pNum);break;
  97. case "M" : rtnDate.setMonth(this.getMonth() + pNum);break;
  98. case "D" : rtnDate.setDate(this.getDate() + pNum);break;
  99. case "h" : rtnDate.setHours(this.getHours() + pNum);break;
  100. case "m" : rtnDate.setMinutes(this.getMinutes() + pNum);break;
  101. case "s" : rtnDate.setSeconds(this.getSeconds() + pNum);break;
  102. }
  103. return rtnDate;
  104. }
  105. function getDayOfWeek(pKind)
  106. {
  107. if(pKind.toUpperCase() == "K") {
  108. var week = new Array("��","��","ȭ","��","��","��","��");
  109. return week[this.getDay()];
  110. } else if(pKind.toUpperCase() == "C") {
  111. var week = new Array("��","��","��","�","��","��","��");
  112. return week[this.getDay()];
  113. } else if(pKind.toUpperCase() == "E") {
  114. var week = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
  115. return week[this.getDay()];
  116. } else if(pKind.toUpperCase() == "N") {
  117. return this.getDay() + "";
  118. }
  119. return "";
  120. }
  121. function getMonthDay()
  122. {
  123. var year = this.getFullYear();
  124. var month = this.getMonth();
  125. with(new Date(year, month + 1, 1, 12)) {
  126. setDate(0);
  127. return getDate();
  128. }
  129. }
  130. function isLeapYear()
  131. {
  132. var yyyy = this.getFullYear();
  133. return (new Date(yyyy, 1, 29)).getMonth() == 1
  134. }
  135. function isLeapYear(year) {
  136. var yyyy = parseInt(year);
  137. return (new Date(yyyy, 1, 29)).getMonth() == 1
  138. }
  139. function getDateTime( pDate, pMode ){
  140. var rtnStr = null;
  141. sFDate = pDate.getFullYear();
  142. sFDate = sFDate.toString() + (( pDate.getMonth() + 1 > 9 ) ? pDate.getMonth() + 1 : "0" + (pDate.getMonth() + 1));
  143. sFDate = sFDate.toString() + (( pDate.getDate() > 9 ) ? pDate.getDate() : "0" + pDate.getDate());
  144. sFTime = (( pDate.getHours() > 9 ) ? pDate.getHours() : "0" + pDate.getHours());
  145. sFTime = sFTime.toString() + (( pDate.getMinutes() > 9 ) ? pDate.getMinutes() : "0" + pDate.getMinutes());
  146. sFSec = (( pDate.getSeconds() > 9 ) ? pDate.getSeconds() : "0" + pDate.getSeconds() );
  147. var x = new Array("��", "��", "ȭ", "��", "��", "��", "��");
  148. sWeek = x[pDate.getDay()];
  149. switch( pMode.toUpperCase() ){
  150. case 'D':
  151. rtnStr = sFDate;
  152. break;
  153. case 'T':
  154. rtnStr = sFTime;
  155. break;
  156. case 'S':
  157. rtnStr = sFTime + sFSec;
  158. break;
  159. case 'A':
  160. rtnStr = sFDate + sFTime + sFSec;
  161. break;
  162. case 'W':
  163. rtnStr = sWeek;
  164. break;
  165. default:
  166. rtnStr = sFDate + sFTime;
  167. }
  168. return rtnStr;
  169. }
  170. function isValidDateTime(pDateString, pFormat)
  171. {
  172. var dt = pDateString.toDate(pFormat).getDateFormat(pFormat);
  173. return (pDateString == dt);
  174. }
  175. function getRemoveFormatter(pDateString)
  176. {
  177. if(pDateString.length == 10) {
  178. var arrDate = new Array(3);
  179. arrDate = pDateString.split("/");
  180. if(arrDate.length != 3) {
  181. arrDate = pDateString.split("-");
  182. }
  183. return arrDate[0] + arrDate[1] + arrDate[2];
  184. } else {
  185. return pDateString;
  186. }
  187. }
  188. function isValidMonth(pMonth)
  189. {
  190. var month = 0;
  191. try {
  192. month = eval(pMonth);
  193. } catch(err) {
  194. return false;
  195. }
  196. return (month >= 1 && month <= 12);
  197. }
  198. function isValidDay(pDay)
  199. {
  200. var day = 0;
  201. try {
  202. day = eval(pDay);
  203. } catch(err) {
  204. return false;
  205. }
  206. return (day >= 1 && day <= 31);
  207. }
  208. function getDateInterval(fromDate, endDate, format)
  209. {
  210. var arrFromDate = new Array(3);
  211. var arrEndDate = new Array(3);
  212. if(fromDate.length == 8) {
  213. arrFromDate[0] = fromDate.substr(0, 4);
  214. arrFromDate[1] = fromDate.substr(4, 2);
  215. arrFromDate[2] = fromDate.substr(6, 2);
  216. } else if(fromDate.length == 10) {
  217. arrFromDate = fromDate.split("/");
  218. if(arrFromDate.length != 3) {
  219. arrFromDate = fromDate.split("-");
  220. }
  221. }
  222. if(endDate.length == 8) {
  223. arrEndDate[0] = endDate.substr(0, 4);
  224. arrEndDate[1] = endDate.substr(4, 2);
  225. arrEndDate[2] = endDate.substr(6, 2);
  226. } else if(endDate.length == 10) {
  227. arrEndDate = endDate.split("/");
  228. if(arrEndDate.length != 3) {
  229. arrEndDate = endDate.split("-");
  230. }
  231. }
  232. var rstFromDate = new Date(eval(arrFromDate[0]), eval(arrFromDate[1])-1, eval(arrFromDate[2]));
  233. var rstEndDate = new Date(eval(arrEndDate[0]), eval(arrEndDate[1])-1, eval(arrEndDate[2]));
  234. var rstFrom = rstFromDate.getTime();
  235. var rstEnd = rstEndDate.getTime();
  236. var daydue = Math.ceil((rstEnd - rstFrom) / (24 * 60 * 60 * 1000));
  237. var yeardue = 0;
  238. var monthdue = 0;
  239. if (format == null || format == "" || format.toLowerCase() == "dd") {
  240. return daydue;
  241. } else {
  242. format = format.toLowerCase();
  243. }
  244. var year = arrFromDate[0];
  245. var month = arrFromDate[1];
  246. var day = arrFromDate[2];
  247. var dayCount = 0;
  248. if (day != 1) {
  249. month += 1;
  250. }
  251. do {
  252. if (month > 12) {
  253. month = 1;
  254. year += 1;
  255. }
  256. dayCount = getDayCountForMonth(year, month);
  257. if (daydue < dayCount) {
  258. break;
  259. }
  260. daydue = daydue - dayCount;
  261. month++;
  262. monthdue++;
  263. if (format == "yyyy" && daydue < 365 && (monthdue % 12) == 0) {
  264. break;
  265. }
  266. } while (true);
  267. if (format != "mmdd" && format != "mm" && monthdue >= 12) {
  268. yeardue = monthdue / 12;
  269. monthdue = monthdue % 12;
  270. }
  271. var result = "";
  272. if (format == "yyyy") {
  273. result = yeardue;
  274. } else if (format == "mm") {
  275. result = monthdue;
  276. } else if (format == "mmdd") {
  277. result = monthdue + "/" + daydue;
  278. } else if (format == "yyyymm") {
  279. result = yeardue + "/" + monthdue;
  280. } else if (format == "yyyymmdd") {
  281. result = yeardue + "/" + monthdue + "/" + daydue;
  282. }
  283. return result;
  284. }
  285. function getDayCountForMonth(year, month) {
  286. var normal = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
  287. var leap = new Array(32, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
  288. if (isLeapYear(year)) {
  289. return leap[month - 1];
  290. } else {
  291. return normal[month - 1];
  292. }
  293. }
  294. function getTimeInterval(fromTime, endTime)
  295. {
  296. var arrFromTime = new Array(3);
  297. var arrEndTime = new Array(3);
  298. if(fromTime.length == 4 || fromTime.length == 6) {
  299. arrFromTime[0] = fromTime.substr(0, 2);
  300. arrFromTime[1] = fromTime.substr(2, 2);
  301. arrFromTime[2] = fromTime.substr(4, 2);
  302. } else if(fromTime.length == 5 || fromTime.length == 8) {
  303. arrFromTime = fromTime.split(":");
  304. }
  305. if(arrFromTime[2].length == 0) arrFromTime[2] = 0;
  306. if(endTime.length == 4 || endTime.length == 6) {
  307. arrEndTime[0] = endTime.substr(0, 2);
  308. arrEndTime[1] = endTime.substr(2, 2);
  309. arrEndTime[2] = endTime.substr(4, 2);
  310. } else if(endTime.length == 5 || endTime.length == 8) {
  311. arrEndTime = endTime.split(":");
  312. }
  313. if(arrEndTime[2].length == 0) arrEndTime[2] = 0;
  314. var rstFromTime = new Date(2000, 1, 1, eval(arrFromTime[0]), eval(arrFromTime[1]), eval(arrFromTime[2]), 0);
  315. var rstEndTime = new Date(2000, 1, 1, eval(arrEndTime[0]), eval(arrEndTime[1]), eval(arrEndTime[2]), 0);
  316. var diffTime = (rstEndTime - rstFromTime) / 1000;
  317. return diffTime;
  318. }
  319. function getNewDate(){
  320. var rtnDate = new Date();
  321. var timediff = getGlobalVariable("timediff");
  322. var serverInterval = 0;
  323. if(!isNull(timediff) && !isNaN(timediff)){
  324. serverInterval = parseInt(timediff);
  325. }
  326. rtnDate.setTime(rtnDate.getTime() + serverInterval);
  327. return rtnDate;
  328. }
  329. function getCurrentDateTime(){
  330. return getCurrentDate() + " " + getCurrentTime();
  331. }
  332. function getCurrentDate()
  333. {
  334. var sDate = getNewDate();
  335. rtnDate = sDate.getFullYear();
  336. rtnDate = rtnDate.toString() + (( sDate.getMonth() + 1 > 9 ) ? sDate.getMonth() + 1 : "0" + (sDate.getMonth() + 1));
  337. rtnDate = rtnDate.toString() + (( sDate.getDate() > 9 ) ? sDate.getDate() : "0" + sDate.getDate()) ;
  338. return rtnDate;
  339. }
  340. function getCurrentTime()
  341. {
  342. var sDate = getNewDate();
  343. rtnTime = (( sDate.getHours() > 9 ) ? sDate.getHours() : "0" + sDate.getHours());
  344. rtnTime = rtnTime.toString() + (( sDate.getMinutes() > 9 ) ? sDate.getMinutes() : "0" + sDate.getMinutes());
  345. rtnTime = rtnTime.toString() + (( sDate.getSeconds() > 9 ) ? sDate.getSeconds() : "0" + sDate.getSeconds());
  346. return rtnTime;
  347. }
  348. function getCurrentWeek(flag)
  349. {
  350. var sDate = getNewDate();
  351. sWeek = new Array("��", "��", "ȭ", "��", "��", "��", "��");
  352. rtnWeek = (flag == "K") ? sWeek[sDate.getDay()] : sDate.getDay();
  353. return rtnWeek;
  354. }
  355. function getStrDate(strDate) {
  356. var strDate = strDate;
  357. var strYear = "";
  358. var strMonth = "";
  359. var strDay = "";
  360. var strHour = "";
  361. var strMin = "";
  362. var strSec = "";
  363. if (strDate.length < 14) {
  364. alert("�����ʹ� 14�ڸ� �̻��̾�� �մϴ�.");
  365. return null;
  366. }
  367. strYear = strDate.substr(0, 4);
  368. strMonth = strDate.substr(4, 2);
  369. strDay = strDate.substr(6, 2);
  370. strHour = strDate.substr(8, 2);
  371. strMin = strDate.substr(10, 2);
  372. strSec = strDate.substr(12, 2);
  373. strDate = strYear + "-";
  374. strDate += strMonth + "-";
  375. strDate += strDay + " ";
  376. strDate += strHour + ":";
  377. strDate += strMin + ":";
  378. strDate += strSec;
  379. return strDate;
  380. }