比较时间而不知道机器的时区

时间:2015-11-09 09:58:23

标签: javascript node.js timezone compare

此代码比较2个时间 - 当前时间和截止时间。

 @Override
public View getView(int position, View convertView, ViewGroup parent) {
    View vi = convertView;
    ViewHolder holder;

    if (vi == null) {
        vi = LayoutInflater.from(parent.getContext()).inflate(R.layout.offer_list, parent,false);

        holder = new ViewHolder();
        holder.offertitle = (TextView) vi.findViewById(R.id.ofrtitle);
        holder.offermrp = (TextView) vi.findViewById(R.id.offeroriginal);
        holder.offerimg = (ImageView) vi.findViewById(R.id.ofr_img);
        holder.offersave = (TextView) vi.findViewById(R.id.saveoffer);
        holder.ofrprice = (TextView) vi.findViewById(R.id.priceoffer);
        vi.setTag(holder);


    } else {
        holder = (ViewHolder)vi.getTag();
    }

    holder.offertitle.setText(offer_title[position]);
    holder.offermrp.setPaintFlags(holder.offermrp.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
    holder.offermrp.setText("Original Price : \u20B9" + mrp[position]);
    holder.offersave.setText("You Save : \u20B9" + you_save[position]);
    holder.ofrprice.setText("Offer Price : \u20B9" + offerprice[position]);
    Glide.with(activity).load(imgURLArray[position]).placeholder(activity.getResources().getDrawable(R.drawable.loadingoffer)).error(activity
            .getResources().getDrawable(R.drawable.loadingoffer)).into(holder.offerimg);

    return vi;
}

它适用于// Get current date/time var now = new Date(); // Set up deadline date/time var deadline = new Date(); //deadline is 1830hrs; deadline.setHours(18); deadline.setMinutes(30); // Check if the current time is after the deadline if( now > deadline ) { console.log('after deadline'); } else { console.log('before deadline'); } now位于同一时区的本地计算机。如果代码在deadline时区可能与要比较的now时区不同的服务器上运行,该怎么办?当deadline可以是任何时区且now位于亚洲/香港时区时,如何处理这种情况?

编辑:在创建deadline时是否有某种方法指定时区?我认为这是一个可能的解决方案。

3 个答案:

答案 0 :(得分:1)

截止日期,现在总是在同一时区,因为你new Date()

答案 1 :(得分:1)

当你在JS中创建两个时间时,客户端就没有这样的情况。因为两个时间都会从同一个客户端读取时间。

但是,如果在任何情况下,任何时间来自服务器(当然是字符串形式),位于另一个时区,而客户端位于另一个时区,那么这种情况有可能发生。

现在,您接近将两个日期转换为特定时区(任何)。 然后进行比较。

您可以使用This库来转换JS中的时区 并从This Thread获取帮助。

答案 2 :(得分:0)

您缺少客户所在时区的信息。只需将其与所有时区的时间进行比较,就可以解决部分问题。

在我的示例中,我将使用moment.js,因为它是一个很好的库,具有许多仅适用于时区的功能。

您可以使用this code查找匹配的时区,但有时他们对DST有不同的规则,因此他们会转移一年。

但是,如果这很好,您现在可以使用moment.js指定截止日期的时区并计算您剩余的时间。