栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

像在PHP中一样获得一年中的JavaScript

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

像在PHP中一样获得一年中的JavaScript

在观察夏令时和1月1日是星期五的年份中,日期存在问题。通过使用所有UTC方法进行修复。以下代码将相同的结果返回给Moment.js。

function getWeekNumber(d) {    // Copy date so don't modify original    d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));    // Set to nearest Thursday: current date + 4 - current day number    // Make Sunday's day number 7    d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay()||7));    // Get first day of year    var yearStart = new Date(Date.UTC(d.getUTCFullYear(),0,1));    // Calculate full weeks to nearest Thursday    var weekNo = Math.ceil(( ( (d - yearStart) / 86400000) + 1)/7);    // Return array of year and week number    return [d.getUTCFullYear(), weekNo];}var result = getWeekNumber(new Date());document.write('It's currently week ' + result[1] + ' of ' + result[0]);

创建“ UTC”日期时,小时为零。

最小化的原型版本(仅返回星期数):

Date.prototype.getWeekNumber = function(){  var d = new Date(Date.UTC(this.getFullYear(), this.getMonth(), this.getDate()));  var dayNum = d.getUTCDay() || 7;  d.setUTCDate(d.getUTCDate() + 4 - dayNum);  var yearStart = new Date(Date.UTC(d.getUTCFullYear(),0,1));  return Math.ceil((((d - yearStart) / 86400000) + 1)/7)};document.write('The current ISO week number is ' + new Date().getWeekNumber());

测试部分

在本部分中,您可以输入YYYY-MM-DD格式的任何日期,并检查该代码是否具有与Moment.js
ISO周号相同的周号(在2000年至2050年的50年中进行了测试)。

Date.prototype.getWeekNumber = function(){  var d = new Date(Date.UTC(this.getFullYear(), this.getMonth(), this.getDate()));  var dayNum = d.getUTCDay() || 7;  d.setUTCDate(d.getUTCDate() + 4 - dayNum);  var yearStart = new Date(Date.UTC(d.getUTCFullYear(),0,1));  return Math.ceil((((d - yearStart) / 86400000) + 1)/7)};function checkWeek() {  var s = document.getElementById('dString').value;  var m = moment(s, 'YYYY-MM-DD');  document.getElementById('momentWeek').value = m.format('W');  document.getElementById('answerWeek').value = m.toDate().getWeekNumber();}<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>Enter date  YYYY-MM-DD: <input id="dString" value="2021-02-22"><button onclick="checkWeek(this)">Check week number</button><br>Moment: <input id="momentWeek" readonly><br>Answer: <input id="answerWeek" readonly>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415900.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号