* 引入AMD加载方式: require.js CDN

https://cdn.bootcss.com/require.js/2.3.5/require.js

*  创建模块文件./js/util/date.js

(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
(global.DateUtil = factory());
}(this, function() {
/**
按所给的时间格式输出指定的时间
格式说明
对于 2014.09.05 13:14:20
yyyy: 年份,2014
yy: 年份,14
MM: 月份,补满两位,09
M: 月份, 9
dd: 日期,补满两位,05
d: 日期, 5
HH: 24制小时,补满两位,13
H: 24制小时,13
hh: 12制小时,补满两位,01
h: 12制小时,1
mm: 分钟,补满两位,14
m: 分钟,14
ss: 秒,补满两位,20
s: 秒,20
w: 星期,为 ['日', '一', '二', '三', '四', '五', '六'] 中的某一个,本 demo 结果为 五 e.g.
formatDate(new Date(1409894060000), 'yyyy-MM-dd HH:mm:ss 星期w')
2014-09-05 13:14:20 星期五
*/
function formatDate(t, str) {
var obj = {
yyyy: t.getFullYear(),
yy: ("" + t.getFullYear()).slice(-2),
M: t.getMonth()+1,
MM: ("0"+(t.getMonth()+1)).slice(-2),
d: t.getDate(),
dd: ("0"+t.getDate()).slice(-2),
H: t.getHours(),
HH: ("0"+t.getHours()).slice(-2),
h: t.getHours() % 12,
hh: ("0"+(t.getHours()%12)).slice(-2),
m: t.getMinutes(),
mm: ("0"+t.getMinutes()).slice(-2),
s: t.getSeconds(),
ss: ("0"+t.getSeconds()).slice(-2),
w: ['日', '一', '二', '三', '四', '五', '六'][t.getDay()]
};
return str.replace(/([a-z]+)/ig, function($1) {
return obj[$1];
});
} return {
formatDate: formatDate
}
}));

 

* 配置amd方式加载的配置文件 config.js

+1 Line:  "date": "js/util/date"

require.config({
paths : {
"jquery": "bootstrap/js/jquery-1.10.2.min",
'jquery-cookie': "bootstrap/js/jquery.cookie",
"url-param": "js/util/getUrlParam",
"date": "js/util/date"
},
shim: {
'jquery-cookie': {
deps: ['jquery']
},
'bootstrap': {
deps: ['jquery']
}
}
});

  

* 使用这个模块 对日期格式化 

require(['date'], function(DateUtil) {
// 转换为这样的格式2018.2.1
var ds = DateUtil.formatDate(new Date(), "yyyy.M.d");
});

 

* 总结

** 全局环境不一定是window

(function(global) {console.log(global)})(this)

  运行结果:

- 在浏览器下:

Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, frames: Window, …}

- 在node环境

{}

** 不使用amd方式加载的话, 会执行这行

global.DateUtil = factory()   // 这里的DateUtil为该模块的名字  可以是jQuery, Vue...

(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
(global.DateUtil = factory());
}(this, function() {
function m1() {}
function m2() {}
// ...
// 封装一组方法
return {
method1: m1,
method2: m2,
// ...
}
});

  Usage:   DateUtil.method1(), DateUtil.method2()...

* 简单的自定义异步加载js的函数

/**
* 动态引入javascript文件,
* Usage:
* function script_onload() {
* alert(1);
* }
* var load_js = new Script(script_onload);
* load_js.set("http://static.gongju.com/js/jquery-1.4.4.min.js");
* @param id: domid [optional]
* @param callback js文件加载完了callback function
*/
function Script(callback) {
var js = document.createElement("script");
this.js = js;
js.type = "text/javascript";
document.body.appendChild(js); Script.prototype.set = function(url, id) {
this.js.src = url;
id && (this.js.id = id);
};
if (callback) {
if (navigator.appName.toLowerCase().indexOf('netscape') === -1) {
js.onreadystatechange = function() {
js.readyState === 'complete' && callback(this);
}
} else {
js.onload = function() {
callback(this);
}
}
}
}

  

javascript Date 日期格式化 formatDate, require.js 模块 支持全局js引入 / amd方式加载的更多相关文章

  1. SpringBoot返回date日期格式化

    SpringBoot返回date日期格式化,解决返回为TIMESTAMP时间戳格式或8小时时间差 问题描述 在Spring Boot项目中,使用@RestController注解,返回的java对象中 ...

  2. 能否使用require('.json')的方式加载大量JSON文件?

    Node.js中推崇非阻塞I/O,但是require一个模块时却是同步调用的,这会带来性能上的开销,但并不是每次require都很耗时,因为在require成功之后会缓存起来,在此加载时直接从缓存读取 ...

  3. js Date 日期格式化(转)

    var myDate = new Date();myDate.getYear();        //获取当前年份(2位)myDate.getFullYear();    //获取完整的年份(4位,1 ...

  4. JavaScript Date日期对象以及日期格式化方法

    前言 Date对象是javascript语言中内置的数据类型,用于提供日期和时间的操作接口.Date对象是在早期java中的java.util.Date类基础上创建的,为此,Date类型使用自UTC1 ...

  5. js的 new Date()日期格式化显示以及js获取时间戳

    一.日期格式化显示: 对 new Date() 得到日期的进行格式显示扩展,扩展方法如下: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分 ...

  6. javascript Date日期类

      四.Date日期类 迁移时间:2017年5月27日18:43:02 Author:Marydon (一)对日期进行格式化(日期转字符串) 自定义Date日期类的format()格式化方法 方式一: ...

  7. Date 日期格式化

    <span id="time"></span> <script> //名称:日期加法函数 //参数:part(year.month.day.ho ...

  8. js 自己创建ready多个可以依次加载

    js会把相同的方法名给覆盖了,很多时候我们都无法再页面加载的时候写多个onload事件,这样只有最后一个才能起效,所以从网上找了找,最后决定自己写一个,例子很简单,希望有高人来指导指导 <!DO ...

  9. Vue.js 开发实践:实现精巧的无限加载与分页功能

    本篇文章是一篇Vue.js的教程,目标在于用一种常见的业务场景--分页/无限加载,帮助读者更好的理解Vue.js中的一些设计思想.与许多Todo List类的入门教程相比,更全面的展示使用Vue.js ...

随机推荐

  1. Pikachu-File Inclusion模块

    一.概述 文件包含,是一个功能.在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件. 比如 在PHP中,提供了:include(),inclu ...

  2. 容器平台(kubernetes)架构设计

    一眨眼距离上次发文好几年过去了,今天翻未读邮件看到博客有文章回复,猛然想起将博客遗忘在角落好几年了,赶紧访问博客.找回密码.翻翻文章,想写点什么但是又不知道从哪下手,N年前的第一篇文章是一个crm设计 ...

  3. MySQL——分表,分库操作

    说明 大数据量并且访问频繁的表,将其分为若干个表.如果不分的话,进行一次查询就会将表锁住,导致不能进行其他操作,故分表.表分割垂直分割应用场景:热数据放一个表里,冷数据放一个表里.冷数据使用MyIsa ...

  4. jvm系列(六):jvm调优-工具篇

    ## jdk自带的工具### jconsole Jconsole(Java Monitoring and Management Console)是从java5开始,在JDK中自带的java监控和管理控 ...

  5. mfc HackerTools监控键盘按键

    string GetKey(int Key) { string KeyString = ""; //判断符号输入 const int KeyPressMask = 0x800000 ...

  6. qt 中的QlistWidget

  7. Mybatis轻松入门(仅要求会用看着一个就够了,略过源码分析部分即可)

    文章目录 ==一.概念== 二.快速入门 1.开发步骤 2.环境搭建 2.1.导入Mybatis的坐标和其他坐标 2.2.创建User表 2.3.编写实体 2.4.编写UserMapper配置文件 2 ...

  8. ArcGIS Engine中实现ArcMap的捕捉效果

    注意要将捕捉相关接口的对象放在OnCreate方法中,这样在初始化就可以有捕捉效果,(捕捉对象赋值放在OnClick中出现第一次点击之前不能捕捉的BUG) 这里是直接在工具中实现的 ,可以按需求将捕捉 ...

  9. java8 lambda 表达式详解

    lambada 表达式实质上是一个匿名方法,但该方法并非独立执行,而是用于实现由函数式接口定义的唯一抽象方法 使用 lambda 表达式时,会创建实现了函数式接口的一个匿名类实例 可以将 lambda ...

  10. 【转载】vim 中文帮助手册的安装

    本文出处http://hi.baidu.com/bkhcvzdvmjfkpyr/item/9c238224c1a69498b6326360 vim自带的帮助手册是英文的, 对平时编程的人来说没有多大阅 ...