将文本输入字符串中的日期转换为其他格式javascript

将文本输入字符串中的日期转换为其他格式javascript,javascript,Javascript,我输入的日期是用于例如 var startDate = "January 16, 2013" 从我试图挖掘的旧帖子中,我知道我可能需要使用date.js From 所以我在html中增加了一行代码来启动它 <script src="http://prestigeswimming.com/wp-content/plugins/cred-frontend-editor/date.js" type="text/javascript"></script> <script

我输入的日期是用于例如

var startDate = "January 16, 2013"
从我试图挖掘的旧帖子中,我知道我可能需要使用date.js From

所以我在html中增加了一行代码来启动它

<script src="http://prestigeswimming.com/wp-content/plugins/cred-frontend-editor/date.js" type="text/javascript"></script> 
<script type="text/javascript">
   var startDate = "January 16, 2013"
   alert(startDate.getMonthName());
</script>

var startDate=“2013年1月16日”
警报(startDate.getMonthName());

我是否应该这样做以得到一个警告框,上面写着“一月”?

试试这个新版本的线路:

var startDate = Date.parseString( "January 16, 2013");
要使用库,必须使用Date()对象


parseString是该对象上返回日期对象的函数

试试这一行的新版本:

var startDate = Date.parseString( "January 16, 2013");
要使用库,必须使用Date()对象


parseString是该对象上返回日期对象的函数

无需使用库:

var startDate = "January 16, 2013";
var d = new Date(startDate);
var month = d.getMonth() + 1;
var day = d.getDate();
var year = d.getFullYear();

alert(month + "-" + day + "-" + year);

以下内容将您的日期格式转换为有效的ECMAScript日期格式:

var startDate = "ApRiL 16, 2013";
var noCommas = startDate.replace(/\,/g,'');
var withDashes = noCommas.replace(/ /g,"-");

function monthsToNumbers(date)
{
  var months = ["january","february","march","april","may","june","july","august","september","october","november","december"];
  var year;

  date = date.toLowerCase();

  for(var i = 0; i < months.length; i++)
  {
    if(date.indexOf(months[i]) != -1)
    {
      if(i+1 < 10)
        date = date.replace(months[i],"0" + (i+1));
      else
        date = date.replace(months[i],i+1);
    }
  }

  year = date.match(/\d{4}/);
  date = date.replace(year, "");
  date = year + "-" + date;
  date = date.substring(0,date.length-1);

  return date;
}

var d = new Date(monthsToNumbers(withDashes));
var month = d.getMonth() + 1;
var day = d.getDate();
var year = d.getFullYear();

alert(d);
var startDate=“2013年4月16日”;
var noCommas=startDate.replace(/\,/g');
var withdash=noCommas.replace(//g,“-”);
函数月数(日期)
{
风险值月份=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
var年;
date=date.toLowerCase();
对于(变量i=0;i

无需使用库:

var startDate = "January 16, 2013";
var d = new Date(startDate);
var month = d.getMonth() + 1;
var day = d.getDate();
var year = d.getFullYear();

alert(month + "-" + day + "-" + year);

以下内容将您的日期格式转换为有效的ECMAScript日期格式:

var startDate = "ApRiL 16, 2013";
var noCommas = startDate.replace(/\,/g,'');
var withDashes = noCommas.replace(/ /g,"-");

function monthsToNumbers(date)
{
  var months = ["january","february","march","april","may","june","july","august","september","october","november","december"];
  var year;

  date = date.toLowerCase();

  for(var i = 0; i < months.length; i++)
  {
    if(date.indexOf(months[i]) != -1)
    {
      if(i+1 < 10)
        date = date.replace(months[i],"0" + (i+1));
      else
        date = date.replace(months[i],i+1);
    }
  }

  year = date.match(/\d{4}/);
  date = date.replace(year, "");
  date = year + "-" + date;
  date = date.substring(0,date.length-1);

  return date;
}

var d = new Date(monthsToNumbers(withDashes));
var month = d.getMonth() + 1;
var day = d.getDate();
var year = d.getFullYear();

alert(d);
var startDate=“2013年4月16日”;
var noCommas=startDate.replace(/\,/g');
var withdash=noCommas.replace(//g,“-”);
函数月数(日期)
{
风险值月份=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
var年;
date=date.toLowerCase();
对于(变量i=0;i

如果您只处理US语言环境日期,并且需要将任意字符串输入解析为日期,您还可以检查是否将字符串解析为日期对象。然后,要获得月份名称,只需在Javascript中进行操作:

var Sherlocked = Sherlock.parse('January 16');
var month = Sherlocked.startDate.getMonth();
var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
alert(months[month]);
但是Sherlock.js不会解析今年的数据。如果您需要这方面的支持,您可以使用Sherlock的预处理器系统自己解析全年


披露:我是Sherlock.js的创建者

如果您只处理美国地区日期,并且需要将任意字符串输入解析为日期,您还可以检查是否将字符串解析为日期对象。然后,要获得月份名称,只需在Javascript中进行操作:

var Sherlocked = Sherlock.parse('January 16');
var month = Sherlocked.startDate.getMonth();
var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
alert(months[month]);
但是Sherlock.js不会解析今年的数据。如果您需要这方面的支持,您可以使用Sherlock的预处理器系统自己解析全年


披露:我是Sherlock.js的创建者

旁注:Date.js已经好几年没有维护了,在午夜前后有几个解析错误。您可能会看到。@EmersonF,如果您能够在输入日期格式时更改它,您应该确保遵循以下规范:旁注:date.js已经多年没有维护了,并且在午夜前后有几个解析错误。您可能会看到。@EmersonF,如果您能够在输入日期时更改日期格式,您应该确保遵循以下规范:您依赖于
date
构造函数能够解析该日期,但该日期的格式不正确。因此,在特定的语言环境中,它可能适用于特定浏览器的JavaScript引擎,但这不是您可以依赖的东西。@Alex:再说一遍:在您的语言环境中。你用法国的语言环境测试过吗?越南人?如果您有选择,使用未记录的功能不是一个好主意。是的,我认为
split(“”[0]
比希望解析器工作要好。添加了一个新函数,尝试将其格式转换为ECMAScript有效的日期格式。您依赖于
date
构造函数能够解析该日期,但日期的格式不正确。因此,在特定的语言环境中,它可能适用于特定浏览器的JavaScript引擎,但这不是您可以依赖的东西。@Alex:再说一遍:在您的语言环境中。你用法国的语言环境测试过吗?越南人?如果有选择,使用未记录的功能不是一个好主意。是的,我认为
split(“”[0]
比希望解析器工作要好。添加了一个新函数,尝试将其格式转换为ECMAScript有效的日期格式。@T.J.Crowder-这不是本文档页面所说的,在那里搜索parseString=>。我承认,我没有测试它。@Hogan:它一定是另一个DateJS库!(名称是否足够通用?)@T.J.Crowder-这不是本文档页面所说的,在那里搜索parseString=>。我承认,我没有测试它。@Hogan:它一定是另一个DateJS库!(这个名字很普通,是吗?)