我如何获得年度的当前星期数,例如PHP的星期数date('W')
?
它应该是ISO-8601的 星期数,从星期一开始的星期数。
在观察夏令时和1月1日是星期五的年份中,日期存在问题。通过使用所有UTC方法进行修复。以下代码将相同的结果返回给Moment.js。
/* For a given date, get the ISO week number
*
* Based on information at:
*
* http://www.merlyn.demon.co.uk/weekcalc.htm#WNR
*
* Algorithm is to find nearest thursday, it's year
* is the year of the week number. Then get weeks
* between that date and the first day of that year.
*
* Note that dates in one year can be weeks of previous
* or next year, overlap is up to 3 days.
*
* e.g. 2014/12/29 is Monday in week 1 of 2015
* 2012/1/1 is Sunday in week 52 of 2011
*/
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>
我想得到第一列值,因为我们可以在Jtable中使用swing实现。下面是我的jtable代码和图像。 如图所示,当我单击名称列值8时,它会给我第一列值,如8。但我选择名称列 那么,如何在JavaFX中使用TableView组件实现这一点呢。 我从TableView中获取所选的值,正如您在下图中看到的代码。 所以我希望tableview中的第一列数据与Jtable中的数据相同?那么,怎样才能让它毫无
我试图用和PHP一样的方式在Javascript中对浮点数进行舍入;但是我不能用同样的方式将两种语言的数字四舍五入:< code > 6.4049999999999 当我使用PHP循环时,我得到:,但当我尝试使用Javascript循环时,总是得到 信息: 正确答案是 https://stackoverflow.com/a/54721202/4359029 我的脚本尝试: 摘自:http://lo
问题内容: 如何在Java中找出最后一个月及其年份 例如,如果今天是2012年10月10日,则结果应为Month = 9和year = 2012;如果今天是2013年1月10日,则结果应为Month = 12和year = 2012 问题答案: 您的解决方案在这里,但您需要使用减法来代替加法 然后,您可以在上调用getter以获取适当的字段
问题内容: Mathematica 我想在没有Mathematica的家里做上述事情。使用所需的任何工具,我喜欢使用Python和R,但对任何候选解决方案都满意。我想到的第一件事是RStudio,这里是这个问题,但是我不确定是否有更好的方法可以做到这一点。 如何在X上进行交互式GUI创新? Mathematica的步骤-摘要 问题答案: 这是执行您所描述的R函数: 您可以更改参数以更改样条线的样式
我正在解析明文电子邮件,一旦我有了正文文本,我想把它删减到第一段。
问题内容: 如何获得这样的日期格式? 编辑: 我的代码部分如下所示: 输入错误的月份和年份的原因是什么? 问题答案: 您可以使用SimpleDateFormat。 尝试: 这将使用默认语言环境-相应地调整为其他语言环境。