我如何转换" 2016-03-10 16:00:00.0"到2016年3月10日在JavaScript?

时间:2016-02-25 23:05:52

标签: javascript date datepicker date-format time-format

我得到的日期字符串需要在javascript中转换为其他日期格式。

  • 输入日期字符串:2016-03-10 16:00:00.0

  • 预期输出:March 10,2016

2 个答案:

答案 0 :(得分:0)

https://msdn.microsoft.com/en-us/library/ff743760(v=vs.94).aspx

https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx

这两个链接应该让你开始朝着正确的方向前进。

你可以做点什么 var myDate = new Date(“2016-03-10 16:00:00.0”); myDate.toString( “M”)

打印出来: “2016年3月10日星期四16:00:00 GMT-0800(太平洋标准时间)”

然后你可以解析它并得到你想要的部分。或者你可以在上面的链接中查看其他返回toString格式。

答案 1 :(得分:0)

所有浏览器

使用您正在使用的源格式设置日期格式的最可靠方法是应用以下步骤:

  1. 使用.replace(/ /g,'T')将您的日期转换为ISO 8601
  2. 将其用作new Date()
  3. 的输入
  4. 使用.getDate().getMonth().getFullYear()分别获取日期,月份和年份
  5. 根据您的目标格式将各个部分粘贴在一起
  6. 下面的format功能向您展示了组合这四个步骤的最佳方式:

    var date = '2016-03-10 16:00:00.0';
    
    function format(input) {
        var date = new Date(input.replace(/ /g,'T'));
        return [
            "January", "February", "March", "April", "May", "June", "July",
            "August", "September", "October", "November", "December"
        ][date.getMonth()] + ' ' + date.getDate() + ', ' + date.getFullYear();
    }
    
    document.body.innerHTML = format(date); // OUTPUT : "March 10, 2016"

    (另见this Fiddle)。

    仅限现代浏览器

    您还可以使用内置的.toLocaleDateString方法为您进行格式化。您只需要传递适当的区域设置和选项以匹配正确的格式,但遗憾的是,只有现代浏览器支持(*)

    var date = '2016-03-10 16:00:00.0';
    
    function format(input) {
        var dateFormat = { year: 'numeric', month: 'long', day: 'numeric' };
        return new Date(input.replace(/ /g,'T')).toLocaleDateString('en-US', dateFormat);
    }
    
    document.body.innerHTML = format(date); // OUTPUT : "March 10, 2016"

    (另见this Fiddle)。

    (*) According to the MDN,“现代浏览器”指Chrome 24 +,Firefox 29 +,IE11,Edge12 +,Opera 15+& Safari nightly build