javascript - 显示 "hours and minutes"适用于除 safari 之外的所有浏览器。 JavaScript 日期

标签 javascript date datetime vue.js

我从循环中的对象接收到以下格式的日期:2018-08-06 20:45:00

我只想在客户端的时区中显示“20:45”(始终用两位数表示分钟)。我在 vue.js 的方法部分创建了这个方法:

ihaveadate(dateFromLoop) {
  var d = new Date(dateFromLoop);
  d.setTime(d.getTime() + new Date().getTimezoneOffset() * 60 * 1000);
  var hour = d.getUTCHours();
  var minutes = (d.getMinutes() < 10 ? "0" : "") + d.getMinutes();
  return `${hour}:${minutes}`;
}

它似乎工作正常,除了在 safari 上我有 NaN:NaN,这个问题有一个干净的解决方案吗?

读完你的答案后,我让它像这样工作:

var dateFromLoop = '2018-08-06 20:45:00';
var date = Date.parse(dateFromLoop.replace(" ", "T"));
const daty = new Intl.DateTimeFormat({
  hour: "numeric",
  minute: "numeric"
}).format(date);
console.log(daty);

最佳答案

是的,这在 Safari 上不起作用,至于 ECMAScript 5 ISO-8601 format support :

Alternatively, the date/time string may be in ISO 8601 format. For example, "2011-10-10" (just date) or "2011-10-10T14:48:00" (date and time) can be passed and parsed.

您需要在日期时间中包含 T 才能使其在 Safari 上运行:

new Date('2014-02-18T15:00:48');

你可以尝试这样做:

new Date(dateFromLoop.replace(/\s/, 'T');

关于javascript - 显示 "hours and minutes"适用于除 safari 之外的所有浏览器。 JavaScript 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51708032/

相关文章:

sql-server - 如何在 SQL 中将文本列转换为日期时间

javascript - 错误回调 {"readyState":4 ,"status":200 ,"statusText" :"success"}

javascript - 我如何在其他函数中调用自调用的 javascript 函数?

javascript - 如何禁止从 Angular JS 下拉列表中选择特定选项?

php - 在日期范围列表中省略多余的月份和年份

c++ - FormatDateTime-整数算术溢出C++

javascript - 使用 TypeORM,向实体添加列时出现 `SQLITE_CONSTRAINT: FOREIGN KEY constraint failed`

date - 有两个不同的字符串代表两个不同的配置单元表中的日期,我想用它们来连接

java - 无法将格式化字符串转换为 LocalDateTime

python - pandas 将 2 个具有不同日期索引的数据帧组合在一起