javascript - js中,转换日期失败
阿神
阿神 2017-05-18 10:47:30
[JavaScript讨论组]

我使用

var time = new Date("17 五月 2017 14:01:59")

转化出错,但是使用

var time = new Date("2017-05-17 14:01:59")

转化成功。
如果我必须使用下面的日期格式转化:

17 五月 2017 14:01:59  

怎么处理?

阿神
阿神

闭关修行中......

全部回复(6)
大家讲道理
const dateStr = '17 五月 2017 14:01:59'

function convert2ISO8061 (dateStr) {
  const units = dateStr.split(' ')
  return units[2] + '-' + convertMonth(units[1]) + '-' + units[0] + 'T' + units[3] + 'Z'
}

function convertMonth (mStr) {
  const months = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
  const month = months.indexOf(mStr) + 1
  if (month < 10) {
    return '0' + month
  }
  return parseInt(month)
}

console.log(Date.parse(convert2ISO8061(dateStr)))
阿神

先将 "17 五月 2017 14:01:59" 使用 split(' ') 转换为数组 arr。

再写一个函数将汉字 五月 转为数字形式,然后使用数组 arr 进行迭代重新组合成你所需要的日期格式即可。

迷茫

var time = new Date("17 May 2017 14:01:59"); 是 ok 的哦;
so 题主你只需要将中文月份替换成英文缩写就 ok 了。

習慣沉默

需要自己将五月这个重新一次,然后进行拼接

PHP中文网

刚才理解错意思了,不过根据上面的思路这么写也可以

function converDate(date){
  var arr=date.split(' ');
  var ENdate=['Jan', 'Feb', 'Mar', 'April', 'May', 'Jan', 'July', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
  var CNdate=['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];
  var idx=CNdate.indexOf(arr[1]);
  arr[1]=ENdate[idx];
  return new Date(arr.join(' '));
}
converDate('17 五月 2017 14:01:59');
阿神

moment.js

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号