动态日期时间

动态获取时间

  • 今天公司接手了一个别人的项目,有一个功能是能够预定两周以后球场的使用权
  • 这个小功能是很常见的,很多涉及到预定功能的项目都会使用的到,比如酒店预定等等…

今天在公司里面是边查文档,做这个功能,做了差不多有 40 分钟,主要是对时间的处理比较少,所以做的比较慢,现在已经是晚上了,就来简单的再写一遍,顺便总结一下。

源码在https://gitee.com/jimmyxuexue/js_scattered_knowledge_points/tree/master/%E5%8A%A8%E6%80%81%E8%8E%B7%E5%8F%96%E6%97%B6%E9%97%B4

需要提前学习的关于时间的知识

获取当前的中国标准是阿金
  • 使用 new Date()能够获取当前的标准时间 格式如:Mon Jun 29 2020 21:00:56 GMT+0800
获取当前时间的时间戳
  • 使用 new Date().getTime()可以获取当前时间戳,格式如: 1593435862620
  • 这也就说明,要想将中国标准时间转换成时间戳,就可以使用中国标准时间的.getTime()方法
中国标准时间和时间戳的区别
  • 中国标准时间这个’类型’,应该说是这种数据,JS 默认封装了很多好用的方法,方便我们快速的进行时间格式的转换与获取,如:
    • getTime() 获取年
    • getFullYear() 获取月
    • getgetDate 获取日
    • getDay 获取星期 – 这里要注意,JS 是外国人定义的,在外国人眼中周日才是一周的开始,所以 0 代表的是周日
    • …等等 如获取时分秒
  • 时间戳类型是一串数值,我们可以很方便的进行时间数值上的相加减
  • 综上,时间戳类型方便我们计算时间的变化,中国标准时间方法我们对日期进行转换,所以我们要实现这个功能的需求,思路上就是对时间戳进行对象数值的计算,再转换回标准类型,做对应的操作操作取出我们需要的时间即可。
代码细节如下:
getTime() {
  let now = new Date() // 获取当前的中国标准时间
  console.log(now) //  Mon Jun 29 2020 21:00:56 GMT+0800
  /*
    知识点:
      只有是在时间格式是在 中国准备时间的格式下  才可以使用  getFullYear  getMonth  getDay...等等方法

      但是中国标准时间是不方便计算的 也就是不方便时间的加减
  */
  let nowString = now.getTime() //获取当前的是时间戳
  console.log(nowString) //1593435862620
  /*
    时间戳是number类型  就很方便我们进行计算 所以要动态的获取当前时间的之后 或之前的时间最最关键的
      就是使用 时间戳 进行时间的加减
        时间戳一天的变化就是  1000*60*60*24  这个就是一天的毫秒数
  */
  let time = new Date(nowString) //  将时间错再次转换回中国标准时间
  console.log(time) // Mon Jun 29 2020 21:07:25 GMT+0800 (中国标准时间)
  /*
    到这里  要实现这个功能需要的知识点就已经没有了,最主要的思路就是先获取当前的时间戳,再根据当前的
      时间戳进行时间的计算,  再转回 中国标准时间  使用中国标准时间的一些封装好的方法来获取具体的时间
  */
  for (let i = 0; i < 14; i++) {
    let times = nowString + 1000 * 60 * 60 * 24 * i
    let temp = new Date(times)
    let obj = {}
    obj.date =
      temp.getFullYear() + '-' + temp.getMonth() + '-' + temp.getDate()
    obj.week = this.getWeek(temp.getDay())
    this.timeObj.push(obj)
  }
  console.log(this.timeObj)
},

//根据星期号锁定具体星期
getWeek(week) {
  switch (week) {
    case 0:
      return '星期日'   //直接return 就不要使用break了
    case 1:
      return '星期一'
    case 2:
      return '星期二'
    case 3:
      return '星期三'
    case 4:
      return '星期四'
    case 5:
      return '星期五'
    case 6:
      return '星期六'
  }
},

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Android Studio 中实现日期时间动态更新可以通过以下步骤实现: 1. 在布局文件中添加一个 TextView 用于显示日期时间。例如,可以在 activity_main.xml 文件中添加如下代码: ```xml <TextView android:id="@+id/date_time_textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="24sp" /> ``` 2. 在对应的 Activity 类中找到 TextView 对象,使用 SimpleDateFormat 格式化日期时间。例如,可以在 MainActivity.java 文件的 onCreate 方法中添加如下代码: ```java import java.text.SimpleDateFormat; import java.util.Date; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private TextView dateTimeTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dateTimeTextView = findViewById(R.id.date_time_textview); // 获取当前日期时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentDateTime = sdf.format(new Date()); // 在 TextView 中显示日期时间 dateTimeTextView.setText(currentDateTime); } } ``` 3. 运行应用程序,您将在 TextView 中看到当前的日期时间。要实现动态更新,您可以使用计时器或 Handler 定期更新日期时间。 a. 使用计时器(Timer): ```java import java.util.Timer; import java.util.TimerTask; // 在 onCreate 方法中添加以下代码 Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { @Override public void run() { // 更新日期时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentDateTime = sdf.format(new Date()); dateTimeTextView.setText(currentDateTime); } }); } }, 0, 1000); // 每秒更新一次 ``` b. 使用 Handler: ```java import android.os.Handler; import android.os.Looper; import android.os.Message; // 在 onCreate 方法中添加以下代码 Handler handler = new Handler(Looper.getMainLooper()) { @Override public void handleMessage(Message msg) { // 更新日期时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentDateTime = sdf.format(new Date()); dateTimeTextView.setText(currentDateTime); } }; Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { handler.sendEmptyMessage(0); } }, 0, 1000); // 每秒更新一次 ``` 通过以上步骤,您将能够在 Android Studio 中实现日期时间动态更新。请根据您的需求选择使用计时器或 Handler 来定期更新日期时间

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值