How to convert a Date to a string using Date-Mask _ JavaScript tips-js tutorial

Source: Internet
Author: User
This article describes how to convert a Date into a string using Date-Mask in JavaScript, involving techniques related to javascript Date, array, and string operations, for more information about how to convert a Date to a string using Date-Mask, see the example in this article. Share it with you for your reference. The specific implementation method is as follows:

var MonthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];var DayNames = [ "Sunday", "Monday", "Tueday", "Wednesday", "Thursday",   "Friday", "Saturday" ];var ShortMths = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",   "Sep", "Oct", "Nov", "Dec"];var ShortDays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];var StringToDate = function (sDate, sFormat, cutOff) {  // Input: a date value as a string, it's format as a string e.g. 'dd-mmm-yy'  // Optional: a cutoff (integer) for 2 digit years.  // If no 'd' appears in the format string then the 1st of the month is assumed.  // If the year is 20 and the cut-off is 30 then the value will be converted   // to 2020; if the year is 40 then this will be converted to 1940.  // If no cut-off is supplied then '20' will be pre-pended to the year (YY).  // Output: a string in the format 'YYYY/MM/DD' or ''  // Will not attempt to convert certain combinations e.g. DMM, MDD, DDM, YYYYD.  var sParsed, fndSingle;  // sParsed will be constructed in the format 'YYYY/MM/DD'  sDate = sDate.toString().toUpperCase();  sFormat = sFormat.toUpperCase();  if (sFormat.search(/MMMM|MMM/) + 1) { // replace Mar/March with 03, etc.    sDate = sDate.replace(new RegExp('(' + ShortMths.join('|') + ')[A-Z]*', 'gi'),      function (m) {      var i = ShortMths.indexOf(m.charAt(0).toUpperCase() +         m.substr(1, 2).toLowerCase()) + 1;      return ((i < 10) ? "0" + i : "" + i).toString();    });    sFormat = sFormat.replace(/MMMM|MMM/g, 'MM');  }  if (sFormat.search(/DDDD|DDD/) + 1) { // replace Tue/Tuesday, etc. with ''    sDate = sDate.replace(new RegExp('(' + ShortDays.join('|') + ')[A-Z]*', 'gi'),'');    sFormat = sFormat.replace(/DDDD|DDD/g, '');  }  sDate = sDate.replace(/(^|\D)(\d)(?=\D|$)/g, function($0, $1, $2) {    // single digits 2 with 02    return $1 + '0' + $2;  });  sFormat = sFormat.replace(/(^|[^DMY])(D|M)(?=[^DMY]|$)/g, function($0, $1, $2){    return $1 + $2 + $2; // replace D or M with DD and MM  });  // are there still single Ds or Ms?  fndSingle = sFormat.search(/(^|[^D])D([^D]|$)|(^|[^M])M([^M]|$)/)+1;  // do not attempt to parse, for example, 'DMM'  if ( fndSingle ) return '';  sFormat = sFormat.replace(/(^|[^Y])(YY)(?=[^Y]|$)/g, function($0, $1, $2, index) {    var tempDate = sDate.substr(0, index + 1);    tempDate += (cutOff) ? ((parseInt(sDate.substr(index + 1, 2),10) > cutOff) ? '19' : '20') : '20';    tempDate += sDate.substr(index + 1);    sDate = tempDate;    return $1 + $2 + $2;  });  sParsed = ('YYYY/MM/DD').replace(/YYYY|MM|DD/g, function(m){    return (sFormat.indexOf(m) + 1) ?       sDate.substr(sFormat.indexOf(m), m.length) : '';  });  if (sParsed.charAt(0) == '/') {    // if no year specified, assume the current year    sParsed = (new Date().getFullYear()) + sParsed;  }  if (sParsed.charAt(sParsed.length - 1) == '/') {    // if no date, assume the 1st of the month    sParsed += '01';  }  // should end up with 10 characters..  return ( sParsed.length == 10 ) ? sParsed : '';};

I hope this article will help you design javascript programs.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.