文档章节

JS日期格式化(从YYYY-MM-DD到日期类)

一点灵犀
 一点灵犀
发布于 2015/04/13 14:43
字数 329
阅读 427
收藏 0

字符串格式日期利用阅读,但不利于标准化存储,可以通过以下函数转化为Javascript日期类:

// date = '2015-02-15'
function parseISO8601(date){
    var matches = date.match(/^\s*(\d{4})-(\d{1,2})-(\d{1,2})\s*$/);
    if(matches){
        this.setFullYear(parseInt(matches[1]));
        this.setMonth(parseInt(matches[2]) - 1);
        this.setDate(parseInt(matches[3]));
    }
    return this;
}

不过这样得到的日期是本地时间,如果要保存为标准时间戳(Timestamp),需使用setUTCFullYearsetUTCHours方法:

// datetime = '2015-02-15 11:15:00'
function datetimeToTimestamp(datetime) {
    var a = datetime.split(" ");
    var d = a[0].split("-");
    var t = a[1].split(":");
    var date = new Date();
    date.setUTCFullYear(d[0],(d[1] - 1),d[2]);
    date.setUTCHours(t[0],t[1],t[2],0);

    return date.getTime();
}

补充一个日期转字符串格式化方法:

/**
 * 将 Date 转化为指定格式的string(本地时间)
 * @function formatDate
 * @param {Date} date
 * @param {string} [fmt=yyyy-MM-dd HH:mm:ss]
 * @returns {String}
*/
function formatDate (date, fmt) {
    if (!date || isNaN(date)) return '';
    if (!fmt) fmt = 'yyyy-MM-dd HH:mm:ss';
    var o = {
        "M+": date.getMonth() + 1, //月份
        "d+": date.getDate(),      //日
        "h+": date.getHours()%12 === 0 ? 12 : date.getHours()%12, //小时
        "H+": date.getHours(),     //小时
        "m+": date.getMinutes(),   //分
        "s+": date.getSeconds()    //秒
    };
    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
    }
    for (var k in o) {
        if (new RegExp("(" + k + ")").test(fmt)) {
            fmt = fmt.replace(RegExp.$1,
                RegExp.$1.length === 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)
            );
        }
    }
    return fmt;
}

参考链接:

本文转载自:

共有 人打赏支持
一点灵犀

一点灵犀

粉丝 10
博文 52
码字总数 15202
作品 1
深圳
程序员
私信 提问
在Bootstrap开发框架中使用bootstrap-datepicker插件

在基于Boostrap的Web开发中,往往需要录入日期内容,基于Boostrap的插件中,关于日期的录入可以使用bootstrap-datepicker这个非常不错的插件,以替代默认的type=date这种不太友好的日期录入控...

伍华聪
10/22
0
0
JavaScript图表的时间解析功能(2):日期格式化方法

目录[-] 用不同方式格式化日期 空白数据处理 在上一章内容我们讲解了amCharts的时间解析功能。今天对这个共鞥进行扩展,在amChart中使用不同方式格式化日期。 用不同方式格式化日期 你很有可...

詹真琦
2013/12/04
0
0
简洁JS 日历控件 支持日期和月份选择

以下这个JS日历控件是我的闲暇之余自己编写的,所有的代码全部在IE7/IE8/Firefox下面测试通过, 而且可以解决被iframe层遮盖的问题。现在只提供两种风格(简洁版和古典版)和两种语言(英文和...

梦梦阁
09/06
0
0
mobiscroll日期插件使用

引用css样式,经测试这几个样式都要使用 <link href="../../plugins/Mobiscroll/css/mobiscroll_002.css" rel="stylesheet" type="text/css"> <link href="../../plugins/Mobiscroll/css/mo......

tianyawhl
2016/07/18
0
0
javascript new Date()

new Date("2012-09-25").getYear()在firefox中能成功,在IE中结果为:NAN。 所以请遵循标准: 创建一个日期对象: 一起jquery,17jquery var objDate=new Date([arguments list]); 参数形式有...

吕坤
2015/01/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

小白带你认识netty(三)之NioEventLoop的线程(或者reactor线程)启动(一)

在第一章中,我们看关于NioEventLoopGroup的初始化,我们知道了NioEventLoopGroup对象中有一组EventLoop数组,并且数组中的每个EventLoop对象都对应一个线程FastThreadLocalThread,那么这个...

天空小小
今天
3
0
PHP动态扩展Redis模块

查看已有模块 [root@test-a ~]# /usr/local/php/bin/php -m[PHP Modules]bz2Core...zlib[Zend Modules] 下载包,解压,生成configure文件 [root@test-a ~]# cd /usr/local/src/[ro......

野雪球
今天
4
0
在Ignite中使用线性回归算法

在本系列前面的文章中,简单介绍了一下Ignite的机器学习网格,下面会趁热打铁,结合一些示例,深入介绍Ignite支持的一些机器学习算法。 如果要找合适的数据集,会发现可用的有很多,但是对于...

李玉珏
今天
5
0
Mybatis应用学习——简单使用示例

1. 传统JDBC程序中存在的问题 1. 一个简单的JDBC程序示例: public class JDBCDemo {public static void main(String[] args) {Connection con=null;PreparedStatement statemen...

江左煤郎
今天
5
0
使用JavaScript编写iOS应用业务逻辑

JSAUIKitCocoa使你可以使用JavaScript编写对性能要求不高但可能变动性很大的iOS应用的业务逻辑部分,View组件、需要多线程支持的Model等则直接使用原生对象。 编写方式与React Native相似,但...

neal01
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部