Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从格式化日期分析日期和时间_Javascript_Date_Date Format - Fatal编程技术网

Javascript 从格式化日期分析日期和时间

Javascript 从格式化日期分析日期和时间,javascript,date,date-format,Javascript,Date,Date Format,我有以下格式的日期: Wed Jul 17 2013 13:00:00 GMT-0700 (PDT) 谁能告诉我如何解析日期 Wed Jul 17 2013 在不使用字符串函数的情况下超时 1:00pm 最简单的方法之一是确保您的区域设置正确,这允许您执行以下操作: var myStrDate = 'Wed Jul 17 2013 13:00:00 GMT-0700 (PDT)'; var myDate = Date.parse(myStrDate); var myDateOnly = m

我有以下格式的日期:

Wed Jul 17 2013 13:00:00 GMT-0700 (PDT)
谁能告诉我如何解析日期

Wed Jul 17 2013
在不使用字符串函数的情况下超时

1:00pm

最简单的方法之一是确保您的区域设置正确,这允许您执行以下操作:

var myStrDate = 'Wed Jul 17 2013 13:00:00 GMT-0700 (PDT)';
var myDate = Date.parse(myStrDate);
var myDateOnly = myDate.toLocaleDateString();
var myTimeOnly = myDate.toLocaleTimeString();

这里是一个很好的起点:

您可以使用日期字符串构造一个
Date
对象,并结合其他函数来获得所需的输出
dayname
()返回dayname,
monthname
()返回三个字母的月份名称

我使用了
console.info()
来输出结果-
alert()
可以在适当的情况下用作替代方法

function dayname(d)
{
  var names = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri","Sat" ];
  return names[d.getDay()];
}
function monthname(d)
{
    var names = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
    return names[d.getMonth()];
}

// construct new date object passing date string as parameter  
var d = new Date("Wed Jul 17 2013 13:00:00 GMT-0700 (PDT)");
console.info(dayname(d) + ' ' + monthname(d) + ' ' + d.getDate() + ' ' + d.getFullYear());
对于时间,此
gettime
()函数检查正确输出am或pm的小时数,以及正确的格式-:

function gettime(d)
{
    var ampm = "am";
    var hour = d.getHours();
    var mins = d.getMinutes();
    if (hour >= 12)
    {
        hour = hour - 12;
        ampm = "pm";
    }
    if (hours < 10)
        hours = "0" + hours;
    if (mins < 10)
        mins = "0" + mins;
    return hour + ":" + mins + ampm;
}
console.info(gettime(d));
函数gettime(d) { var ampm=“am”; var hour=d.getHours(); var mins=d.getMinutes(); 如果(小时>=12) { 小时=小时-12; ampm=“pm”; } 如果(小时<10) 小时数=“0”+小时数; 如果(分钟<10) 分钟=“0”+分钟; 返回小时+“:”+分钟+安培; } console.info(gettime(d));
还可以尝试使用,您可以根据需要设置日期时间的格式。

这里是学习javascript中日期函数的重要参考资料

请查看此链接,希望这对您的帮助看起来像是日期对象的toString输出。你能访问对象本身吗?你从哪里得到这些信息?到目前为止,您尝试了什么?“不使用字符串函数”-为什么?这不正是“解析”的全部内容吗?特别是当日期已经完全符合您需要的格式,并且时间只需要稍微调整即可切换到am/pm格式时。(如果不使用字符串函数,则必须将其转换为
日期
,然后取出各个片段并将其重新组合为所需的格式…)但这会格式化当前日期。OP说他们已经有了一个特定格式的特定日期…更新了。现在使用日期字符串创建日期对象。
var ms = Date.parse(new Date("Wed Jul 17 2013 13:00:00 GMT-0700 (PDT)"));
var curr_date = ms.getDate();
var curr_month = ms.getMonth() + 1; //Months are zero based
var curr_year = ms.getFullYear();
var hours = ms.getHours();
var mins = ms.getMinutes();
suf = (hours >= 12)? 'pm' : 'am';
hours = hours % 12;
document.write(curr_date + "-" + curr_month + "-" + curr_year + "  " + hours + ":" + min + " " + suffix);