从具有特定格式的字符串获取日期

时间:2015-05-27 21:16:15

标签: javascript date datetime

我在字符串中有一个日期 - SELECT step.command FROM msdb.dbo.sysjobs job JOIN msdb.dbo.sysjobsteps step ON job.job_id = step.job_id WHERE step.command like '%Your Package Name%'

dtStr

我想从var dtStr = "Thu May 28 02:13:16 BDT 2015"; 获取类似 - MM DD YYYY HH mm格式的日期。为此,我尝试将dtStr转换为dtStr,然后尝试使用这样的日期格式 -

Date

但它对我没用。任何人都可以帮助我 - 将var dtStr = "Thu May 28 02:13:16 BDT 2015"; today = new Date(dtStr); alert( today.toLocalDateFormat("MM DD YYYY HH mm") ); 转换为格式为dtStr的日期吗?

提前致谢。

3 个答案:

答案 0 :(得分:2)

很遗憾,您尝试解析的字符串不会被Date.parse()接受,该方法会在您创建字符串时解析字符串。如果字符串始终采用该格式,您可以执行一些字符串操作并将其重新排列到Date()// this creates a proper Date object new Date("Thu, May 28 2015 02:13:16 +0600"); 可以处理。

pkg-config

或者,您可以使用RFC2822/IETF format之一创建一个新的Date对象,方法是自己拆分/解析字符串,然后将它们插入构造函数中的正确位置。

此时,您将拥有一个Date对象,但您仍然需要从中获取值 - 唯一可以执行类似于您尝试执行的操作的内置方法是{{ 3}},这不是标准曲目(例如,我的Chrome版本不支持它)。因此,您需要独立获取值,并将它们连接在一起。

此时,直接解析字符串可能更容易,并且完全跳过Date对象,或使用像other constructors这样的库,它提供对格式化输出字符串的支持。

答案 1 :(得分:1)

试试这个

var todayDate=new Date("Thu May 29 2014 13:50:00");
  var format ="AM";
  var hour=todayDate.getHours();
  var min=todayDate.getMinutes();
  if(hour>11){format="PM";}
  if (hour   > 12) { hour = hour - 12; }
  if (hour   == 0) { hour = 12; }  
  if (min < 10){min = "0" + min;}
  document.write(todayDate.getMonth()+1 + " / " + todayDate.getDate() + " / " +  todayDate.getFullYear()+" "+hour+":"+min+" ");

小提琴:http://jsfiddle.net/e0ejguju/

答案 2 :(得分:1)

您可以尝试使用以下方法 -

function formatReview(date){

        /*****************************************************************
        * The method parameter 'date' is in the following format - 
        *          "Thu May 28 02:13:16 BDT 2015"
        * Javascript 'new Date()' has not suitable constructor to 
        * support this format. The parameter 'date' need to 
        * convert to fee the Date() constructor. 
        *******************************************************************/

        var monthSymbols = "JanFebMarAprMayJunJulAugSepOctNovDec";

        var elements = date.split(" ");
        var day = elements[0];
        var monthName = elements[1];
        var monthIndex = monthSymbols.indexOf(monthName)/3 +1;
        var date = elements[2];
        var year = elements[5];

        var timestamp = elements[3];
        var timestampElements = timestamp.split(":");
        var hour = timestampElements[0];
        var minutes = timestampElements[1];

        var dateString = monthIndex +"-"+ date +"-"+ year +" "+ hour +":"+ minutes;
        return dateString;
    }