如何使用JavaScript将字符串拆分为4个变量

如何使用JavaScript将字符串拆分为4个变量,javascript,string,Javascript,String,我想把这个字符串分成4个变量。 “2016年8月28日星期日00:00:00 GMT+0600(中亚标准时间)” 我想得到这样的变量,var day=“Sun”var month=“Aug”var year=2016; 在纯js中如何实现这一点?您可以使用spli() 如果您询问如何将日期字符串拆分为组件,则可以使用date对象: var datestr = "Sun Aug 28 2016 00:00:00 GMT+0600"; var date = new Date(Date.parse(d

我想把这个字符串分成4个变量。 “2016年8月28日星期日00:00:00 GMT+0600(中亚标准时间)” 我想得到这样的变量,var day=“Sun”var month=“Aug”var year=2016; 在纯js中如何实现这一点?

您可以使用spli()


如果您询问如何将日期字符串拆分为组件,则可以使用date对象:

var datestr = "Sun Aug 28 2016 00:00:00 GMT+0600";
var date = new Date(Date.parse(datestr));
var year = date.getFullYear();
有关日期对象可用的函数列表,请参见此处:

但是,如果您希望对字符串进行更一般的拆分,则需要使用如上所述的split,或者专门使用regex来绘制不同的组件。大概是这样的:

/(\w+) (\w+) (\d{1,2}) (\d{4})/.exec(datestr);

当然,上面的问题在于它假定了一种非常特定的格式,在您的情况下,这种格式可能可靠,也可能不可靠。

使用该日期字符串创建一个日期对象,然后通过属性访问所有值

var d = new Date(dateString);
    d.getDate() Returns the day of the month (from 1-31)
    d.getDay()  Returns the day of the week (from 0-6)
    d.getFullYear() Returns the year
    d.getHours()    Returns the hour (from 0-23)
    d.getMonth()    Returns the month (from 0-11)

首先,根据日期字符串创建日期对象:

var date = new Date(yourDateString);
然后可以使用
getDay()
getMonth()
getFullYear()
函数。这些将返回数字,即,日期为
0-6
,月份为
0-11
,年份为年份

要将月份设置为字符串而不是数字,可以设置数组:

month[0] = "January";
month[1] = "February";
month[2] = "March";
month[3] = "April";
month[4] = "May";
month[5] = "June";
month[6] = "July";
month[7] = "August";
month[8] = "September";
month[9] = "October";
month[10] = "November";
month[11] = "December";

var month = month[date.getMonth()];
要以字符串形式获取日期,请执行以下操作:

weekday[0]=  "Sunday";
weekday[1] = "Monday";
weekday[2] = "Tuesday";
weekday[3] = "Wednesday";
weekday[4] = "Thursday";
weekday[5] = "Friday";
weekday[6] = "Saturday";

var day = weekday[date.getDay()];
年内:

var year = date.getFullYear();
使用ES6,您可以执行以下操作:

[ day, month,, year ] = str.split(' ');
例如:

var str=“2016年8月28日星期日00:00:00 GMT+0600(中亚标准时间)”,
日、月、年;
[日、月、年]=str.split(“”);

log('day='+day+',month='+month+',year='+year')此外,如果您的代码运行在支持该ES2015功能的环境中,或者正在传输到ES5,则可以使用解构

var str = "Sun Aug 28 2016 00:00:00 GMT+0600 (Central Asia Standard Time)";
var [day, month, , year] = str.split(' ');

console.log('day', day);
console.log('month', month);
console.log('year', year);

这取决于您如何处理之后的值

  • 你可以调查一下
    var日期=新日期('2016年8月28日星期日00:00:00 GMT+0600(中亚标准时间)');
    log('星期几:',date.getDay());
    log('Full year:',date.getFullYear());
    
    log('Month:',date.getMonth())
    您可能希望阅读.trued“var res=str.split(“”;“仅供参考,getYear已被弃用。请改用getFullYear。问题是此字符串是从jQurey日历插件生成的。谢谢..您能解释('day',day')吗;这正是我给
    console.log
    语句贴上标签的方式。我只是发现这样做更容易跟踪您看到的内容。这是个人偏好。实际上,使用一个
    console.log
    来说明阿尔诺的回答中的概念可能更有意义。谢谢您提供了这么好的示例!!
    var str = "Sun Aug 28 2016 00:00:00 GMT+0600 (Central Asia Standard Time)";
    var [day, month, , year] = str.split(' ');
    
    console.log('day', day);
    console.log('month', month);
    console.log('year', year);