Home >Web Front-end >JS Tutorial >Implementation method of formatting javascript date object into string_javascript skills

Implementation method of formatting javascript date object into string_javascript skills

WBOY
WBOYOriginal
2016-05-16 17:03:541306browse

The date formatting provided by JavaScript is too simple. Generally, applications need to implement the formatting method by themselves. Below is a formatting solution I came up with, which should be able to meet common needs. Any separator can be used in the date template. , you can also use text as a separator, and even support formatting without separators like yyyyMMdd.

Principle: Use regular expressions to convert the date elements in the date template [such as yyyy , MM, dd] and delimiters into an array, and then replace the date elements with the actual values ​​to form a date string.

There are two functions in the implementation, which can be run by pasting.

Extension method:

The example only supports elements of year, month, day, hour, minute, second and millisecond. If you need to display the day of the week, you can add w = getDay() in values ​​and modify the regular expression to y |M |d |H |m |s |S |w |[^yMdHmsSw]/g is enough.

If you need to display the month or week in full or simplified English, you can add the corresponding configuration in cfg. I only added an example in cfg

Usage:

var date = new Date();
var str = formatDate(date, 'yyyy year MMM month dd day');
Then the value of str is July 29, 2012

Copy code The code is as follows:

/**
* Format integer
* @param number:number The integer to be formatted
* @param fmt:string Integer format
*/
function formatNumber(number, fmt ) {
number = number '';
if (fmt.length > number.length) {
return fmt.substring(number.length) number;
}
return number;
}

/**
* Format date as string representation
* @param datetime:Date The date object to be formatted
* @param format:String Date format
*/
function formatDate(datetime, format) {
var cfg = {
MMM : ['一', '二', '三', '四' , 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve'],
MMMM : ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve']
},
values ​​= {
y : datetime.getFullYear(),
M : datetime.getMonth(),
d : datetime.getDate(),
H : datetime.getHours(),
m : datetime.getMinutes(),
s : datetime.getSeconds(),
S : datetime.getMilliseconds()
};
/*Use regular expressions to split each element of the date format* /
var elems = format.match(/y ​​|M |d |H |m |s |S |[^yMdHmsS]/g);
//Replace date elements with actual values
for (var i = 0; i < elems.length; i ) {
if (cfg[elems[i]]) {
elems[i] = cfg[elems[i]][values[elems [i].charAt(0)]];
} else if (values[elems[i].charAt(0)]) {
elems[i] = formatNumber(values[elems[i].charAt (0)], elems[i].replace(/./g, '0'));
}
}

return elems.join('');
}

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn