- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 MEAN 堆栈构建一个拍卖网站,用于培训。我在理解一件事上没有什么问题。我为数据库中的每个产品以“”2017-04-30T22:10:52.360Z”格式存储了截止日期。在前端,我显示了今天的日期和截止日期之间的差异(类似于“30 天”)剩余”)使用此功能:
$scope.days =function (date) {
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1; //January is 0!
var yyyy = today.getFullYear();
if (dd < 10) {
dd = '0' + dd
}
if (mm < 10) {
mm = '0' + mm
}
today = yyyy + '/' + mm + '/' + dd;
$scope.today = today;
var date2 = new Date(today);
var date1 = new Date(date);
var timeDiff =(date1.getTime() - date2.getTime());
$scope.dayDifference =((timeDiff / (1000 * 3600 * 24))-1);
return $scope.dayDifference;
}
});
显然我在 html 文件中传递了其他日期。我的问题是:如果我这样做,拍卖会在世界上不同的时间结束,因为今天的日期(和时间)在意大利和美国是不同的。还是我错了?我知道,momentjs,但我想知道是否存在一种方法可以用 Angular 修改前端的这个函数,以修复这个错误。例如:如果我从美国加入该网站,它会将该日期转换为我的时区(服务器的)
最佳答案
如果日期字符串采用 ISO 8601 扩展格式,例如“2017-04-30T22:10:52.360Z”,则 IE 8 以后的浏览器可以使用内置解析器对其进行解析。另外,默认情况下,日期方法会根据主机时区偏移进行调整,以便获取剩余天数,您可以解析 ISO 字符串并获取与用户当前日期的差异(以毫秒为单位),然后转换为天(或任何适合的单位),例如
/* Return the difference in days between supplied string date
** and host current date
** @param {string} s - Date string in ISO 8601 format, e.g. 2017-04-05T23:00:00Z
** @returns {number/string} if s is a valid date string, returns days between current host date and supplied date
** if s is an invalid date string, returns "Invalid date string"
*/
function daysRemaining(isoString) {
var d = new Date(isoString);
if (isNaN(d)) return 'Invalid date string';
return (d - new Date()) / 8.64e7;
}
var s = '2017-05-30T22:10:52.360Z';
console.log('Days remaining: ' + daysRemaining(s).toFixed(2));
如果日期字符串不完全是 ISO 8601 格式,某些浏览器可能会解析它,而另一些浏览器则不会。另外,如果不是上述 ISO 格式,有些可能会将其视为 UTC,有些可能会将其视为本地,所以要小心。
您可能想要四舍五入到整日,或转换为天、小时和分钟。
请注意,IE 8 及更早版本不会解析 ISO 格式的日期字符串,其他一些浏览器的旧版本也不会。
关于javascript - 拍卖截止日期 MEAN 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43710135/
我正在使用 Skrollr 插件,它在桌面上运行良好。但在 iPad 上,我的文档的高度被 chop 了。我尝试删除所有 skrollr 数据属性,但问题仍然存在,我注意到只需激活插件就会遇到此问题。
我正在使用顶部栏作为我的顶部导航设置一个新站点。我的代码在空白页面上运行,所以我知道菜单结构是正确的,但是当我将它集成到我的网站设计中时,下拉菜单被截断/隐藏在主要内容后面。 未剪裁: 剪辑: 最佳答
这个问题已经有答案了: Unknown Column In Where Clause (16 个回答) 已关闭 5 年前。 当我在 MySQL 中尝试这个时: select make,count(*)
当 navController 出现在 UIPopoverController 中时,我的 UIBarButtonItem 在导航栏中被截断。知道是什么原因造成的吗? 问题截图:http://www.
我是一名优秀的程序员,十分优秀!