1. /**
  2. * 日期格式化,
  3. * @param date 要格式化的日期
  4. * @param pattern 进行格式化的模式
  5. * 支持的模式字母有:
  6. * y:年,
  7. * M:年中的月份(1-12),
  8. * d:月份中的天(1-31),
  9. * H:小时(0-23),
  10. * h:小时(0-12),
  11. * m:分(0-59),
  12. * s:秒(0-59),
  13. * S:毫秒(0-999),
  14. * E:星期(以汉语表示),
  15. * e:星期(以英文表示),
  16. * A:上午/下午标识,
  17. * a:AM/PM标识
  18. * @return
  19. */
  20. function formatDate(date,pattern){
  21. var d;
  22. if((d=parseDate(date))==null){
  23. return "";
  24. }
  25. if(!pattern){
  26. pattern = "yyyy-MM-dd";
  27. }
  28. var arrWeek = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六","Sunday","Monday","Tuesday","Tuesday","Thursday","Friday","Saturday"];
  29. var value = new Object();
  30. value["y"] = parseString(date.getFullYear());
  31. value["M"] = parseString(date.getMonth() + 1);
  32. value["d"] = parseString(date.getDate());
  33. value["H"] = parseString(date.getHours());
  34. value["h"] = parseString(value["H"] > 12 ? (value["H"]-12) : value["H"]);
  35. value["m"] = parseString(date.getMinutes());
  36. value["s"] = parseString(date.getSeconds());
  37. value["S"] = parseString(date.getMilliseconds());
  38. value["E"] = arrWeek[date.getDay()];
  39. value["e"] = arrWeek[date.getDay() + 7];
  40. value["a"] = (value["H"] > 12 ? "PM" : "AM");
  41. value["A"] = (value["H"] > 12 ? "下午" : "上午");
  42. var result = "";
  43. var i = 0;
  44. var hasE = false;//是否出现过星期
  45. var hasAMPM = false;//是否出现过上午下午
  46. while(i < pattern.length){
  47. var c = pattern.charAt(i++);
  48. var lc = c;//记录本次要处理的字母,如'y'
  49. var tmpStr = c;//本次在处理的字母格式,如'yyyy'
  50. while(i < pattern.length && (c=pattern.charAt(i))==lc){
  51. tmpStr += c;
  52. i++;
  53. }
  54. if(value[lc]!=""&&value[lc]!=null&&value[lc]!="undefined"){
  55. //本次要处理的字母是模式母
  56. if((lc == "E" || lc == "e") && !hasE){
  57. //星期
  58. result += value[lc];
  59. hasE = true;
  60. } else if(lc == "E" || lc == "e") {
  61. result += tmpStr;
  62. } else if((lc=="a" || lc == "A") && !hasAMPM){
  63. //上下午
  64. result += value[lc];
  65. hasAMPM = true;
  66. } else if((lc=="a" || lc == "A") ){
  67. result += tmpStr;
  68. } else {
  69. //如果是 单个的日期,月份,小时,分,秒的字符串,不能再进行字符串的截取操作
  70. if(tmpStr == "d" || tmpStr == "M" || tmpStr=="H" || tmpStr=="h" || tmpStr == "m" || tmpStr == "s"){
  71. result += value[lc];
  72. } else {
  73. result += value[lc].fillChar(tmpStr.length);
  74. }
  75. }
  76. } else {//非模式字母,直接输出
  77. result += tmpStr;
  78. }
  79. }
  80. return result;
  81. }

测试:

  1. var date = new Date();
  2. document.write(formatDate(date,"yyyy-MM-dd HH:mm:ss.SSS E") + "<br>");
  3. document.write(formatDate(date,"yyyy年MM月dd日 HH时mm分ss秒 E") + "<br>");
  4. document.write(formatDate(date,"yyyy-M-d hh:mm:ss.SSS A E") + "<br>");
  5. document.write(formatDate(date,"MM/dd/yy hh:mm:ss a e") + "<br>");
  6. document.write(formatDate(date,"M/d/yyyy") + "<br>");

JavaScript-日期格式化(一)的更多相关文章

  1. JavaScript 日期格式化 简单有用

    JavaScript 日期格式化 简单有用 代码例如以下,引入jquery后直接后增加下面代码刷新可測试 Date.prototype.Format = function (fmt) { //auth ...

  2. Javascript 日期格式化

    Javascript 日期格式化 需求: 给出:日期 .格式,根据日期格式进行输出. Date.prototype.Format = function (fmt) { //author: meizz ...

  3. javascript日期格式化方法汇总

    本文给大家汇总介绍了javascript格式化日期时间的几种常用方法,个人对最后一种个性化输出时间比较有兴趣,基本上只要项目中能用到都是使用这种,推荐给小伙伴们. 方法一: ? 1 2 3 4 5 6 ...

  4. (转)javascript日期格式化扩展

    转自:http://blog.csdn.net/vbangle/article/details/5643091 javascript Date format(js日期格式化)   方法一:这个很不错, ...

  5. 一个JavaScript日期格式化扩展函数

    我们都知道在Java和PHP语言中,有专门用于格式化日期对象的类和函数,例如Java中的DateFormat等等,通过这些类和函数,我们可以方便的将一个日期对象按照格式的要求输出为字符串,例如对于同一 ...

  6. Javascript 日期格式化 相关操作

    1.相关扩展函数 //--------------------------------------------------- // 判断闰年 //--------------------------- ...

  7. Javascript日期格式化指定格式的字符串实现

    代码部分 TypeScript /** * format a Date object * 将 Date 转化为指定格式的String * @param {Date} date 源日期对象 * @par ...

  8. 轻松搞定javascript日期格式化问题

    Date.prototype.format = function(f){ var d = this f = f || "yyyy-MM-dd hh:mm:ss" return f. ...

  9. JavaScript日期格式化处理

    /** * 获取年月,如:2018-08 */ export function getMonth () { return formatDate(new Date(), 'yyyy-MM') } /** ...

  10. javascript常用开发笔记:一个简单强大的js日期格式化方法

    前言:一直没找到好用的javascript日期格式化工具,自己写了一个,方便以后复用 1.主要功能 (1)支持任意顺序的日期格式排列:yyyy=年,MM=月,dd=日,HH=时,mm=分,ss=秒,s ...

随机推荐

  1. js刷新当前页面

    a href="javascript:window.location.href=location.href"

  2. js部分---类型,变量;

    <script type="text/javascript">1.注释:用“//或者/**/”2.数据类型: (1)整型 int (2)小数类型 单精度float 双精 ...

  3. 如何在远程计算机上运行PowerShell

    问题: 不能在WORKGROUP里面的远程计算机里运行PowerShell指令,报错为用户名密码错 解决方法: 把两台机器上(远程计算机其和本机)都加入到trustedhosts 具体请参考 http ...

  4. jQuery对下拉框Select操作总结

    jQuery对下拉框Select操作总结 转自网络,留做备用 jQuery获取Select元素,并选择的Text和Value: 1. $("#select_id").change( ...

  5. AssetStore资源名字

    NGUI A Pathfinding Project Pro PlayMaker 2DToolkit Scene Manager UniLOD UniLUA Save Game-JSON+Binary ...

  6. 1.Nexus安装与配置

    1.Nexus下载下载地址:http://www.sonatype.org/nexus/go/下载后的文件:nexus-2.11.4-01-bundle.zip安装:直接解压到某个目录即可解压后,会有 ...

  7. Iaas-cloudstack

    http://cloudstack.apt-get.eu/systemvm/4.6/ 模板地址 http://cloudstack.apt-get.eu/centos7/4.6/ 代理及管理地址 ht ...

  8. 【转】关于B/S架构应用程序的权限设置分析和总结

    来自:http://www.cnblogs.com/zhouxunyu/p/3790122.html 分析:不同的用户登录到系统后赋予不同的操作权限,而用户存在于数据库中,标识用户权限的字段也保存在数 ...

  9. How to send Email using C#

    try { MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail. ...

  10. Javascript 数组之判断取值和数组取值

    题目一:var arr = [ '100px', 'abc'-6, [], -98765, 34, -2, 0, '300', , function(){alert(1);}, null, docum ...