JavaScript-日期格式化(一)
/**
* 日期格式化,
* @param date 要格式化的日期
* @param pattern 进行格式化的模式
* 支持的模式字母有:
* y:年,
* M:年中的月份(1-12),
* d:月份中的天(1-31),
* H:小时(0-23),
* h:小时(0-12),
* m:分(0-59),
* s:秒(0-59),
* S:毫秒(0-999),
* E:星期(以汉语表示),
* e:星期(以英文表示),
* A:上午/下午标识,
* a:AM/PM标识
* @return
*/
function formatDate(date,pattern){
var d;
if((d=parseDate(date))==null){
return "";
}
if(!pattern){
pattern = "yyyy-MM-dd";
}
var arrWeek = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六","Sunday","Monday","Tuesday","Tuesday","Thursday","Friday","Saturday"];
var value = new Object();
value["y"] = parseString(date.getFullYear());
value["M"] = parseString(date.getMonth() + 1);
value["d"] = parseString(date.getDate());
value["H"] = parseString(date.getHours());
value["h"] = parseString(value["H"] > 12 ? (value["H"]-12) : value["H"]);
value["m"] = parseString(date.getMinutes());
value["s"] = parseString(date.getSeconds());
value["S"] = parseString(date.getMilliseconds());
value["E"] = arrWeek[date.getDay()];
value["e"] = arrWeek[date.getDay() + 7];
value["a"] = (value["H"] > 12 ? "PM" : "AM");
value["A"] = (value["H"] > 12 ? "下午" : "上午");
var result = "";
var i = 0;
var hasE = false;//是否出现过星期
var hasAMPM = false;//是否出现过上午下午
while(i < pattern.length){
var c = pattern.charAt(i++);
var lc = c;//记录本次要处理的字母,如'y'
var tmpStr = c;//本次在处理的字母格式,如'yyyy'
while(i < pattern.length && (c=pattern.charAt(i))==lc){
tmpStr += c;
i++;
}
if(value[lc]!=""&&value[lc]!=null&&value[lc]!="undefined"){
//本次要处理的字母是模式母
if((lc == "E" || lc == "e") && !hasE){
//星期
result += value[lc];
hasE = true;
} else if(lc == "E" || lc == "e") {
result += tmpStr;
} else if((lc=="a" || lc == "A") && !hasAMPM){
//上下午
result += value[lc];
hasAMPM = true;
} else if((lc=="a" || lc == "A") ){
result += tmpStr;
} else {
//如果是 单个的日期,月份,小时,分,秒的字符串,不能再进行字符串的截取操作
if(tmpStr == "d" || tmpStr == "M" || tmpStr=="H" || tmpStr=="h" || tmpStr == "m" || tmpStr == "s"){
result += value[lc];
} else {
result += value[lc].fillChar(tmpStr.length);
}
}
} else {//非模式字母,直接输出
result += tmpStr;
}
}
return result;
}
测试:
var date = new Date();
document.write(formatDate(date,"yyyy-MM-dd HH:mm:ss.SSS E") + "<br>");
document.write(formatDate(date,"yyyy年MM月dd日 HH时mm分ss秒 E") + "<br>");
document.write(formatDate(date,"yyyy-M-d hh:mm:ss.SSS A E") + "<br>");
document.write(formatDate(date,"MM/dd/yy hh:mm:ss a e") + "<br>");
document.write(formatDate(date,"M/d/yyyy") + "<br>");
JavaScript-日期格式化(一)的更多相关文章
- JavaScript 日期格式化 简单有用
JavaScript 日期格式化 简单有用 代码例如以下,引入jquery后直接后增加下面代码刷新可測试 Date.prototype.Format = function (fmt) { //auth ...
- Javascript 日期格式化
Javascript 日期格式化 需求: 给出:日期 .格式,根据日期格式进行输出. Date.prototype.Format = function (fmt) { //author: meizz ...
- javascript日期格式化方法汇总
本文给大家汇总介绍了javascript格式化日期时间的几种常用方法,个人对最后一种个性化输出时间比较有兴趣,基本上只要项目中能用到都是使用这种,推荐给小伙伴们. 方法一: ? 1 2 3 4 5 6 ...
- (转)javascript日期格式化扩展
转自:http://blog.csdn.net/vbangle/article/details/5643091 javascript Date format(js日期格式化) 方法一:这个很不错, ...
- 一个JavaScript日期格式化扩展函数
我们都知道在Java和PHP语言中,有专门用于格式化日期对象的类和函数,例如Java中的DateFormat等等,通过这些类和函数,我们可以方便的将一个日期对象按照格式的要求输出为字符串,例如对于同一 ...
- Javascript 日期格式化 相关操作
1.相关扩展函数 //--------------------------------------------------- // 判断闰年 //--------------------------- ...
- Javascript日期格式化指定格式的字符串实现
代码部分 TypeScript /** * format a Date object * 将 Date 转化为指定格式的String * @param {Date} date 源日期对象 * @par ...
- 轻松搞定javascript日期格式化问题
Date.prototype.format = function(f){ var d = this f = f || "yyyy-MM-dd hh:mm:ss" return f. ...
- JavaScript日期格式化处理
/** * 获取年月,如:2018-08 */ export function getMonth () { return formatDate(new Date(), 'yyyy-MM') } /** ...
- javascript常用开发笔记:一个简单强大的js日期格式化方法
前言:一直没找到好用的javascript日期格式化工具,自己写了一个,方便以后复用 1.主要功能 (1)支持任意顺序的日期格式排列:yyyy=年,MM=月,dd=日,HH=时,mm=分,ss=秒,s ...
随机推荐
- ZOJ 1068 P,MTHBGWB
原题链接 题目大意:给定一个字符串,先用Morse Code编码,把编码倒序,再解码成字符串.现给定处理后的字符串,求原始信息. 解法:用C++String类的函数.每次读入一个字符,就在string ...
- 【转载】.NET(C#): Task.Unwrap扩展方法和async Lambda
.NET(C#): Task.Unwrap扩展方法和async Lambda 目录 Task.Unwrap基本使用 Task.Factory.StartNew和Task.Run的Unwrap操作 使用 ...
- js部分---表单验证;(含正则表达式)
1.非空验证 <div>用户名:<input id="yhm" type="text" name="yhm" />& ...
- 全排列 Permutations
class Solution { public: vector<vector<int>> permute(vector<int>& nums) { sort ...
- Android——ListView
1.ArryAdapter: arry_adapter的layout文件: <?xml version="1.0" encoding="utf-8"?&g ...
- 后台向前台传递entity的list然后构筑combobox的方法(easyui)
遇问题,莫着急,深呼吸. 后台写法:JsonUtil.toJson(new ArrayList<Entity>());此处jsonUtil是已封装的方法,即将entity的list转为js ...
- Android开发之多级下拉列表菜单实现(仿美团,淘宝等)
注:本文转载于:http://blog.csdn.net/minimicall/article/details/39484493 我们在常用的电商或者旅游APP中,例如美团,手机淘宝等等,都能够看的到 ...
- Too many authentic authentication failures for root
连接SSH服务器时报 Too many authentic authentication failures for root. 方法一:删除目标服务器 /root/.ssh/目录下的 known_ho ...
- Jquery暴力解数独
var arry= new Array(); var nums= new Array(); var snum; function numchain() { snum=0; for(var i=0; ...
- share point 2013 显示详细错误信息?
Wednesday, April 6, 2011 at 17:40 | Post a Comment SharePoint "Unknown Error": How to Sho ...