2015-12-11 116 views
2

请查看小提琴here如何从输入日期获取自定义格式输出?

我有一个文本框,将一个日期(格式为12/11/2015)直接输入到段落的'msg'占位符中。

日期显示很好。但是,我想获得它下面的格式显示 -

$("#get").click(function (e) { 
    e.preventDefault(); 
    $('#msg').html($('input:text').val()); 
    dateFormat: 'DD, MM d' 
}); 

所以,输入当天的日期,如2015年12月11日将产生周五的结果,12月11日

...但它不工作。

我哪里错了?

+0

取看看['toLocaleString()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString),它可以完成你正在寻找的东西正确的选择。请参阅[this](http://stackoverflow.com/a/21748457/798634)SO使用答案。 –

+0

@MattK - 一个很好的资源。谢谢你,先生! – webfrogs

回答

3

您可以使用JavaScript日期的方法以获得所需的输出格式。这里是w3schools page参考,这里是代码得到输出你想要的:

$("#get").click(function (e) { 
    e.preventDefault(); 
    var d = new Date($('input:text').val()); 
    var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; 
     var day = days[d.getDay()]; 
    var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; 
    var month = months[d.getMonth()]; 
    var date = d.getDate(); 
    var output = day+", "+month+" "+date; 
    $('#msg').html(output); 
}); 

JSFiddle

0

试试这个

var date = $('#datepicker').datepicker({ dateFormat: 'dd-mm-yy' }).val(); 
+0

我更新了问题。我试图让输出显示为** DD,MM d ** – webfrogs

1

没有直接的方法从天然Date对象获取月份名称和日期名称的字符串化版本。你需要保持月份名称和日期名称的数组,并从中查询。

$(function(){ 
    $("#get").click(function (e) { 
     e.preventDefault(); 
     var fDate = getDateFormatted($('input:text').val()); 
     $('#msg').html(fDate); 
    }); 

});  

function getDateFormatted(dateString) 
{ 
    date = new Date(dateString); 
    var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']; 

var monthNames = ["January", "February", "March", "April", "May", "June", "July", 
        "August", "September", "October","November", "December"]; 

    var day=date.getDay(); 
    var dayName = days[day+1]; 
    var monthIndex = date.getMonth(); 
    var year = date.getFullYear(); 

return dayName + ', ' + monthNames[monthIndex+1] + ' ' + date.getDate(); 

} 

Here是工作示例。

+0

但是,我想显示的输出为(示例)**星期五,12月11日**,所以我只是添加另一个变量和列表星期几,然后在返回字符串中调用它? – webfrogs

+0

我在jsbin上看到了您的更新。这很有趣,但它是有道理的。 – webfrogs

+0

@webfrogs我更新了答案。看一看 – Shyju