js-获取两个字符串日期的相隔周

例如说"2017-04-01 23:00:00"是周六, "2017-04-28 23:00:00"是周五,包含各自所在的那一周,我真正需要获得的结果是5个周。

开始做的时候一直把字符串啊,时间格式啊转来转去,后来发现,完全没有必要,毕竟我想要的只是周期值而已。。。。。

思路其实很简单,就是获取开始日期的那一周的周一的日期

然后用周一的日期和结束日期比较,向上取整。就可以获取到这个数了

var start = "2017-04-01 23:00:00";
        var end = "2017-04-28 23:00:00";

        //开始日期的周一
        var monday = showWeekFirstDay(start);
        //开始日期的周一距离结束日期的周期相差值
        var cycle = WeeksBetw(monday, end);

        //返回Nowdate所在周的第一天
        function showWeekFirstDay(Nowdates) {
            var Nowdate = new Date(Nowdates);
            var WeekFirstDay = new Date(Nowdate - (Nowdate.getDay() - 1) * 86400000);
            return WeekFirstDay;
        }

  

//返回两个日期相差的周数
function WeeksBetw(date11, date22) {

var date1 = new Date(date11);
var date2 = new Date(date22);
//这里的date1,date2都是Date对象

var dt1 = date1.getTime();

var dt2 = date2.getTime();

//向上取整

return Math.ceil(Math.abs(dt1 - dt2) / 1000 / 60 / 60 / 24 / 7);

}


以上~

时间: 2024-10-30 02:53:27

js-获取两个字符串日期的相隔周的相关文章

获取两个字符串日期的差值的方法

日期的格式:“yymmddhhmmss”是一个字符串,计算两个日期之间的差值,显然就是计算两个日期之间相差的秒数,有个简洁的方法是将字符串转化为time_t格式,用time_t表示的时间(日历时间)是从一个时间点(例如:1970年1月1日0时0分0秒)到此时的秒数 我们可以看到它的定义是这样的 #ifndef _TIME_T_DEFINEDtypedef long time_t;           /* 时间值 */#define _TIME_T_DEFINED       /* 避免重复定义

获取两个字符串中最大相同子串

2.获取两个字符串中最大相同子串.第一个动作:将短的那个串进行长度一次递减的子串打印. "cvhellobnmtanop" "andefc" 思路: 1,将短的那个子串按照长度递减的方式获取到. 2,将每获取到的子串去长串中判断是否包含,如果包含,已经找到! package tan; class Test { public static String getMaxSubString(String s1,String s2) { String max = "

给定两个字符串,获取两个字符串中最大相同的子串

1 package weekpratisce; 2 3 ///给定两个字符串,获取两个字符串中最大相同的子串 4 public class Demo9 { 5 public static void main(String[] args) { 6 String xx = "aaaaaaaaaaddddddd", yy = "45ddddda"; 7 String str = getMaxsubstring(xx, yy); 8 System.out.println(s

获取两个字符串的最大相同子串

/** 获取两个字符串的最大相同子串. String s1 = "也许成湖科技是今天最大的赢家"; String s2 = "可能成湖科技未必成为今天最大的赢家吧"; /** 获取两个字符串的最大相同子串. String s1 = "也许成湖科技是今天最大的赢家"; String s2 = "可能成湖科技未必成为今天最大的赢家吧"; 思路: 1,先明确两个字符串的长短,在长串中判断短串是否存在. 2 存在,已找到,说明短串就是

获取两个字符串全部公共的子串算法

应用场景: 获取两个字符串全部公共的子串. 思路: 1. 先获取两个子串的交集 2. 遍历交集子串,从最短子串到最长子串 public static List<String> getAllCommonSubStrings(String str1, String str2) { //TODO null check. String longString = str1; String shortString = str2; if(str1.length() < str2.length()){

获取两个字符串中最大的相同子串

public class 获取两个字符串中最大的相同子串 { public static void main(String[] args) { String a="abcwerthelloadcedf"; String b="cdhelloesadcedf"; String c=getSonString(a,b); System.out.println(c); } private static String getSonString(String a, String

获取两个字符串所有公共的子串算法

应用场景: 获取两个字符串所有公共的子串. 思路: 1. 先获取两个子串的交集 2. 遍历交集子串,从最短子串到最长子串 public static List<String> getAllCommonSubStrings(String str1, String str2) { //TODO null check. String longString = str1; String shortString = str2; if(str1.length() < str2.length()){

获取两个字符串中最长相等的字符串

获取两个字符串中最长相等的字符串 例:"likeyou"和"loveyou" 输出"eyou" 前段时间面试遇到的面试题,当时的想法是首先将字符串拆分成字符数组,然后拿两个数组去做比较,可惜由于基础不是很扎实,当时的for循环比较写成了这个样子 for (int i = 0; i < arrStr1.length; i++) { for (int j = 0; j < arrStr2.length; j++) { if (arrStr

PHP&amp;获取两个时间日期之间得所有日期

/** * 获取两个时间之间的日期 * @param $startDate * @param $endDate * @return array */ function getDatesBetweenTwoDays($startDate, $endDate) { $dates = []; if (strtotime($startDate) > strtotime($endDate)) { // 如果开始日期大于结束日期,直接return 防止下面的循环出现死循环 return $dates; }